---
title: "Make a Canton call"
method: POST
path: "/operations/canton/calls"
tags: ["Canton (Beta)"]
---

# Make a Canton call

`POST /operations/canton/calls`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/operations/canton/calls`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/operations/canton/calls/post.ts> (a function with typed inputs; its response is checked against the schema)

Submits a Canton call from a vault account's Canton wallet. `type` selects the call and the shape of `payload`.

## Headers

- `Idempotency-Key` string

## Request body

- union
  - CantonCallParticipantOnboarding
    - `type` 'DTCC_PARTICIPANT_ONBOARDING', required: Which call to make. Selects the shape of `payload`.
    - `vaultAccountId` string, required: The vault account whose Canton wallet makes this call.
    - `blockchainId` 'CANTON' | 'CANTON_TEST', required: The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.
    - `payload` ParticipantOnboardingPayload: Optional, and so is every field in it: omit `payload` entirely to onboard with DTCC's published parties for the blockchain and the default expiry.
      - `expiresAt` string, date-time: When the onboarding request expires if it has not been answered. RFC 3339.
      - `operator` string: DTCC infra operator party id. Optional — overrides the service's default for the blockchain.
      - `compliance` string: DTCC compliance party id. Optional — overrides the service's default for the blockchain.
      - `registrar` string: DTCC registrar party id — co-signs the accept. Optional — overrides the service's default for the blockchain.
      - `clientOnboarder` string: DTCC client onboarder party id — co-signs the accept. Optional — overrides the service's default for the blockchain.
      - `upgrader` string: DTCC upgrader party id — the Model Upgrade Tool authority. Optional — overrides the service's default for the blockchain.
  - CantonCallEndInvestorInvite
    - `type` 'DTCC_END_INVESTOR_INVITE', required: Which call to make. Selects the shape of `payload`.
    - `vaultAccountId` string, required: The vault account whose Canton wallet makes this call.
    - `blockchainId` 'CANTON' | 'CANTON_TEST', required: The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.
    - `payload` EndInvestorPayload, required: The end investor a call acts on.
      - `endInvestor` string, required: The end investor's Canton party id.
  - CantonCallEndInvestorInviteCancel
    - `type` 'DTCC_END_INVESTOR_INVITE_CANCEL', required: Which call to make. Selects the shape of `payload`.
    - `vaultAccountId` string, required: The vault account whose Canton wallet makes this call.
    - `blockchainId` 'CANTON' | 'CANTON_TEST', required: The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.
    - `payload` EndInvestorPayload, required: The end investor a call acts on.
      - `endInvestor` string, required: The end investor's Canton party id.
  - CantonCallEndInvestorOffboard
    - `type` 'DTCC_END_INVESTOR_OFFBOARD', required: Which call to make. Selects the shape of `payload`.
    - `vaultAccountId` string, required: The vault account whose Canton wallet makes this call.
    - `blockchainId` 'CANTON' | 'CANTON_TEST', required: The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.
    - `payload` EndInvestorPayload, required: The end investor a call acts on.
      - `endInvestor` string, required: The end investor's Canton party id.
  - CantonCallAllowListAdd
    - `type` 'DTCC_ALLOW_LIST_ADD', required: Which call to make. Selects the shape of `payload`.
    - `vaultAccountId` string, required: The vault account whose Canton wallet makes this call.
    - `blockchainId` 'CANTON' | 'CANTON_TEST', required: The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.
    - `payload` AllowListPayload, required
      - `wallets` string[], required: Canton party ids to add or remove.
  - CantonCallAllowListRemove
    - `type` 'DTCC_ALLOW_LIST_REMOVE', required: Which call to make. Selects the shape of `payload`.
    - `vaultAccountId` string, required: The vault account whose Canton wallet makes this call.
    - `blockchainId` 'CANTON' | 'CANTON_TEST', required: The blockchain the vault account's Canton party is connected to — `CANTON` or `CANTON_TEST`.
    - `payload` AllowListPayload, required
      - `wallets` string[], required: Canton party ids to add or remove.

## Response `201`

The outgoing transaction that carries the call.

- CallAccepted: The outgoing transaction that carries the call.
  - `transactionId` string, required: The outgoing transaction that carries the call.
  - `status` string, required: The transaction's status at the time of this response — `SUBMITTED`.

## Other responses

- `400`: Unknown or missing type, a missing required payload field, or an invalid party id, blockchainId, or expiry
- `404`: No Canton wallet for this vault account and blockchainId, or an unknown end investor for this tenant
- `409`: The target is not in a state this call can act on, or more than one candidate contract matched the wallet
- `501`: This call type is not yet available: DTCC_END_INVESTOR_INVITE_CANCEL, DTCC_ALLOW_LIST_ADD, DTCC_ALLOW_LIST_REMOVE
- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
