Skip to content
CCPEDIAby Unity Nodes
Documentation/Canton Network Docs/Ledger APIOpenAPIView on Canton Network Docs

POST /v2/commands/async/submit-reassignment

POST
/
v2
/
commands
/
async
/
submit-reassignment
Try it
cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request POST \
  --url 'http://localhost:7575/v2/commands/async/submit-reassignment' \
  --header 'Authorization: Bearer $TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}'
import json
import requests

url = "http://localhost:7575/v2/commands/async/submit-reassignment"
headers = {'Authorization': 'Bearer <token>', 'Content-Type': 'application/json'}
payload = json.loads(r'''{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}''')
response = requests.request(
    "POST", url, headers=headers, json=payload
)

print(response.text)
const response = await fetch('http://localhost:7575/v2/commands/async/submit-reassignment', {
  method: 'POST',
  headers: {
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
},
  body: JSON.stringify({
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}),
});

console.log(await response.text());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'http://localhost:7575/v2/commands/async/submit-reassignment',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}
JSON,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer <token>",
        "Content-Type: application/json"
    ],
]);

$response = curl_exec($curl);
echo $response;
package main

import (
  "bytes"
  "fmt"
  "io"
  "net/http"
)

func main() {
  req, _ := http.NewRequest("POST", "http://localhost:7575/v2/commands/async/submit-reassignment", bytes.NewBufferString(`{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}`))
  req.Header.Set("Authorization", "Bearer <token>")
  req.Header.Set("Content-Type", "application/json")
  response, _ := http.DefaultClient.Do(req)
  defer response.Body.Close()
  body, _ := io.ReadAll(response.Body)
  fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var request = HttpRequest.newBuilder()
    .uri(URI.create("http://localhost:7575/v2/commands/async/submit-reassignment"))
    .header("Authorization", "Bearer <token>")
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("""
{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}
"""))
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'

uri = URI('http://localhost:7575/v2/commands/async/submit-reassignment')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
400
default
{}
<string>
{
  "code": "<string>",
  "cause": "<string>",
  "correlationId": "<string>",
  "traceId": "<string>",
  "context": {},
  "resources": [
    [
      "<string>"
    ]
  ],
  "errorCategory": 123,
  "grpcCodeValue": 123,
  "retryInfo": "<string>",
  "definiteAnswer": false
}

Submit a single reassignment.

cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request POST \
  --url 'http://localhost:7575/v2/commands/async/submit-reassignment' \
  --header 'Authorization: Bearer $TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}'
import json
import requests

url = "http://localhost:7575/v2/commands/async/submit-reassignment"
headers = {'Authorization': 'Bearer <token>', 'Content-Type': 'application/json'}
payload = json.loads(r'''{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}''')
response = requests.request(
    "POST", url, headers=headers, json=payload
)

print(response.text)
const response = await fetch('http://localhost:7575/v2/commands/async/submit-reassignment', {
  method: 'POST',
  headers: {
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
},
  body: JSON.stringify({
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}),
});

console.log(await response.text());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'http://localhost:7575/v2/commands/async/submit-reassignment',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => <<<'JSON'
{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}
JSON,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer <token>",
        "Content-Type: application/json"
    ],
]);

$response = curl_exec($curl);
echo $response;
package main

import (
  "bytes"
  "fmt"
  "io"
  "net/http"
)

func main() {
  req, _ := http.NewRequest("POST", "http://localhost:7575/v2/commands/async/submit-reassignment", bytes.NewBufferString(`{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}`))
  req.Header.Set("Authorization", "Bearer <token>")
  req.Header.Set("Content-Type", "application/json")
  response, _ := http.DefaultClient.Do(req)
  defer response.Body.Close()
  body, _ := io.ReadAll(response.Body)
  fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var request = HttpRequest.newBuilder()
    .uri(URI.create("http://localhost:7575/v2/commands/async/submit-reassignment"))
    .header("Authorization", "Bearer <token>")
    .header("Content-Type", "application/json")
    .method("POST", HttpRequest.BodyPublishers.ofString("""
{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}
"""))
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'

uri = URI('http://localhost:7575/v2/commands/async/submit-reassignment')
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer <token>'
request['Content-Type'] = 'application/json'
request.body = <<~JSON
{
  "reassignmentCommands": {
    "workflowId": "<string>",
    "userId": "<string>",
    "commandId": "<string>",
    "submitter": "<string>",
    "submissionId": "<string>",
    "commands": [
      {
        "command": {
          "AssignCommand": {
            "value": "<object>"
          }
        }
      }
    ]
  }
}
JSON
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
400
default
{}
<string>
{
  "code": "<string>",
  "cause": "<string>",
  "correlationId": "<string>",
  "traceId": "<string>",
  "context": {},
  "resources": [
    [
      "<string>"
    ]
  ],
  "errorCategory": 123,
  "grpcCodeValue": 123,
  "retryInfo": "<string>",
  "definiteAnswer": false
}

Authorizations

httpAuth

Authorization
string
required
HTTP bearer authentication. Send the token as Authorization: Bearer &lt;token&gt;. Ledger API standard JWT token

apiKeyAuth

Sec-WebSocket-Protocol
string
required
API key authentication in the header. Ledger API standard JWT token (websocket)

Body

application/json
reassignmentCommands
object
required
OpenAPI type: ReassignmentCommands.The reassignment command to be submitted. Required

Show child attributes

workflowId
string
Identifier of the on-ledger workflow that this command is a part of. Must be a valid LedgerString (as described in value.proto). Optional
userId
string
Uniquely identifies the participant user that issued the command. Must be a valid UserIdString (as described in value.proto). Required unless authentication is used with a user token. In that case, the token’s user-id will be used for the request’s user_id. Optional
commandId
string
required
Uniquely identifies the command. The triple (user_id, submitter, command_id) constitutes the change ID for the intended ledger change. The change ID can be used for matching the intended ledger changes with all their completions. Must be a valid LedgerString (as described in value.proto). Required
submitter
string
required
Party on whose behalf the command should be executed. If ledger API authorization is enabled, then the authorization metadata must authorize the sender of the request to act on behalf of the given party. Must be a valid PartyIdString (as described in value.proto). Required
submissionId
string
A unique identifier to distinguish completions for different submissions with the same change ID. Typically a random UUID. Applications are expected to use a different UUID for each retry of a submission with the same change ID. Must be a valid LedgerString (as described in value.proto). If omitted, the participant or the committer may set a value of their choice. Optional
commands
object[]
required
OpenAPI type: ReassignmentCommand[].Individual elements of this reassignment. Must be non-empty. Required: must be non-empty

Show child attributes

command
object
OpenAPI type: Command1.A command can either create a new contract or exercise a choice on an existing contract.

Show child attributes

Variant 1
object

Show child attributes

AssignCommand
object
required
OpenAPI type: AssignCommand.Assign a contract

Show child attributes

value
object
required
OpenAPI type: AssignCommand1.Assign a contract

Show child attributes

reassignmentId
string
required
The ID from the unassigned event to be completed by this assignment. Must be a valid LedgerString (as described in value.proto). Required
source
string
required
The ID of the source synchronizer Must be a valid synchronizer id Required
target
string
required
The ID of the target synchronizer Must be a valid synchronizer id Required
Variant 2
object

Show child attributes

Empty
object
required
OpenAPI type: Empty2.
Variant 3
object

Show child attributes

UnassignCommand
object
required
OpenAPI type: UnassignCommand.Unassign a contract

Show child attributes

value
object
required
OpenAPI type: UnassignCommand1.Unassign a contract

Show child attributes

contractId
string
required
The ID of the contract the client wants to unassign. Must be a valid LedgerString (as described in value.proto). Required
source
string
required
The ID of the source synchronizer Must be a valid synchronizer id Required
target
string
required
The ID of the target synchronizer Must be a valid synchronizer id Required

Responses

200

application/json
value
SubmitReassignmentResponse
required

400

Invalid value, Invalid value for: body
text/plain
value
string
required

default

application/json
code
string
required
cause
string
required
correlationId
string
traceId
string
context
Map_String
required
resources
Tuple2_String_String[]
errorCategory
integer (int32)
required
grpcCodeValue
integer (int32)
retryInfo
string
definiteAnswer
boolean

History

Updated3.5

The POST /v2/commands/async/submit-reassignment operation changed in this snapshot.