> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-generated-references-canton-protobuf-histo.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GetCompletionByHash

<div class="x2mdx-ref-page x2mdx-ref-page--operation" />

<div className="x2mdx-ref-operation-shell">
  <div className="x2mdx-ref-operation-main">
    <div class="x2mdx-ref-breadcrumbs" role="navigation" aria-label="Breadcrumb">
      <span>Ledger API</span>

      <span class="x2mdx-ref-breadcrumb-separator">›</span>

      <a href="../../overview">gRPC API</a>

      <span class="x2mdx-ref-breadcrumb-separator">›</span>

      <a href="../../com-daml-ledger-api-v2">v2</a>

      <span class="x2mdx-ref-breadcrumb-separator">›</span>

      <span>GetCompletionByHash</span>
    </div>

    <div class="x2mdx-ref-hero">
      <p class="x2mdx-ref-eyebrow">com.daml.ledger.api.v2</p>

      <h1 class="x2mdx-ref-title">GetCompletionByHash</h1>

      <div class="x2mdx-ref-badges">
        <span class="x2mdx-ref-badge x2mdx-ref-badge--protocol">gRPC</span>

        <a class="x2mdx-ref-badge x2mdx-ref-badge--added" href="#history-added-3-6-1">Added 3.6.1</a>
      </div>
    </div>

    <div class="x2mdx-ref-operation-bar">
      <span class="x2mdx-ref-operation-method x2mdx-ref-operation-method--rpc">RPC</span>

      <code>/com.daml.ledger.api.v2.CommandCompletionService/GetCompletionByHash</code>
    </div>

    ## Protocol Details

    <div class="x2mdx-ref-meta-grid">
      <div class="x2mdx-ref-meta-item">
        <span class="x2mdx-ref-meta-label">Protocol</span>
        <span class="x2mdx-ref-meta-value">gRPC</span>
      </div>

      <div class="x2mdx-ref-meta-item">
        <span class="x2mdx-ref-meta-label">Service</span>
        <span class="x2mdx-ref-meta-value">CommandCompletionService</span>
      </div>

      <div class="x2mdx-ref-meta-item">
        <span class="x2mdx-ref-meta-label">RPC</span>
        <span class="x2mdx-ref-meta-value">GetCompletionByHash</span>
      </div>

      <div class="x2mdx-ref-meta-item">
        <span class="x2mdx-ref-meta-label">Client stream</span>
        <span class="x2mdx-ref-meta-value">No</span>
      </div>

      <div class="x2mdx-ref-meta-item">
        <span class="x2mdx-ref-meta-label">Server stream</span>
        <span class="x2mdx-ref-meta-value">No</span>
      </div>
    </div>

    ## Inputs

    <div class="x2mdx-ref-panel">
      <div class="x2mdx-ref-panel-head">
        <h3>GetCompletionByHashRequest</h3>
      </div>

      <div class="x2mdx-ref-meta-grid">
        <div class="x2mdx-ref-meta-item">
          <span class="x2mdx-ref-meta-label">Message</span>
          <span class="x2mdx-ref-meta-value">com.daml.ledger.api.v2.GetCompletionByHashRequest</span>
        </div>

        <div class="x2mdx-ref-meta-item">
          <span class="x2mdx-ref-meta-label">Client stream</span>
          <span class="x2mdx-ref-meta-value">No</span>
        </div>
      </div>

      <div class="x2mdx-ref-fields">
        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">transaction\_hash</code>
            <span class="x2mdx-ref-type-badge">bytes</span>
          </div>
        </div>
      </div>
    </div>

    ## Outputs

    <div class="x2mdx-ref-panel">
      <div class="x2mdx-ref-panel-head">
        <h3>GetCompletionByHashResponse</h3>
      </div>

      <div class="x2mdx-ref-meta-grid">
        <div class="x2mdx-ref-meta-item">
          <span class="x2mdx-ref-meta-label">Message</span>
          <span class="x2mdx-ref-meta-value">com.daml.ledger.api.v2.GetCompletionByHashResponse</span>
        </div>

        <div class="x2mdx-ref-meta-item">
          <span class="x2mdx-ref-meta-label">Server stream</span>
          <span class="x2mdx-ref-meta-value">No</span>
        </div>
      </div>

      <div class="x2mdx-ref-fields">
        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">accepted\_completion</code>
            <span class="x2mdx-ref-type-badge">Completion</span>
          </div>
        </div>

        <div class="x2mdx-ref-field-row">
          <div class="x2mdx-ref-field-main">
            <code class="x2mdx-ref-field-name">last\_rejected\_completions</code>
            <span class="x2mdx-ref-type-badge">repeated Completion</span>
          </div>
        </div>
      </div>
    </div>

    ## Related Schemas

    <AccordionGroup>
      <Accordion title="com.daml.ledger.api.v2.GetCompletionByHashRequest">
        <div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-getcompletionbyhashrequest">
          <div class="x2mdx-ref-fields">
            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">transaction\_hash</code>
                <span class="x2mdx-ref-type-badge">bytes</span>
              </div>
            </div>
          </div>
        </div>
      </Accordion>

      <Accordion title="com.daml.ledger.api.v2.GetCompletionByHashResponse">
        <div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-getcompletionbyhashresponse">
          <div class="x2mdx-ref-fields">
            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">accepted\_completion</code>
                <span class="x2mdx-ref-type-badge">Completion</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">last\_rejected\_completions</code>
                <span class="x2mdx-ref-type-badge">repeated Completion</span>
              </div>
            </div>
          </div>
        </div>
      </Accordion>

      <Accordion title="com.daml.ledger.api.v2.Completion">
        <div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-completion">
          <div class="x2mdx-ref-fields">
            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">command\_id</code>
                <span class="x2mdx-ref-type-badge">string</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">status</code>
                <span class="x2mdx-ref-type-badge">Status</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">update\_id</code>
                <span class="x2mdx-ref-type-badge">string</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">user\_id</code>
                <span class="x2mdx-ref-type-badge">string</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">act\_as</code>
                <span class="x2mdx-ref-type-badge">repeated string</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">submission\_id</code>
                <span class="x2mdx-ref-type-badge">string</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">deduplication\_offset</code>
                <span class="x2mdx-ref-type-badge">int64</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">deduplication\_duration</code>
                <span class="x2mdx-ref-type-badge">Duration</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">trace\_context</code>
                <span class="x2mdx-ref-type-badge">TraceContext</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">offset</code>
                <span class="x2mdx-ref-type-badge">int64</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">synchronizer\_time</code>
                <span class="x2mdx-ref-type-badge">SynchronizerTime</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">paid\_traffic\_cost</code>
                <span class="x2mdx-ref-type-badge">int64</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">transaction\_hash</code>
                <span class="x2mdx-ref-type-badge">bytes</span>
              </div>
            </div>
          </div>
        </div>
      </Accordion>

      <Accordion title="com.daml.ledger.api.v2.TraceContext">
        <div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-tracecontext">
          <div class="x2mdx-ref-fields">
            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">traceparent</code>
                <span class="x2mdx-ref-type-badge">string</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">tracestate</code>
                <span class="x2mdx-ref-type-badge">string</span>
              </div>
            </div>
          </div>
        </div>
      </Accordion>

      <Accordion title="com.daml.ledger.api.v2.SynchronizerTime">
        <div class="x2mdx-ref-schema" id="schema-com-daml-ledger-api-v2-synchronizertime">
          <div class="x2mdx-ref-fields">
            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">synchronizer\_id</code>
                <span class="x2mdx-ref-type-badge">string</span>
              </div>
            </div>

            <div class="x2mdx-ref-field-row">
              <div class="x2mdx-ref-field-main">
                <code class="x2mdx-ref-field-name">record\_time</code>
                <span class="x2mdx-ref-type-badge">Timestamp</span>
              </div>
            </div>
          </div>
        </div>
      </Accordion>
    </AccordionGroup>

    ## History

    <div class="x2mdx-ref-history" aria-label="Reference history">
      <div class="x2mdx-ref-history-event x2mdx-ref-history-event--introduced" id="history-added-3-6-1">
        <div class="x2mdx-ref-history-event-head">
          <span class="x2mdx-ref-history-event-label">Added</span>
          <code class="x2mdx-ref-history-event-version">3.6.1</code>
        </div>
      </div>
    </div>
  </div>

  <div className="x2mdx-ref-right-rail" role="complementary" aria-label="Examples and responses">
    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">grpcurl</span>
        </div>

        ```bash grpcurl theme={"theme":{"light":"github-light","dark":"github-dark"}}
        # Add -plaintext if the server is not using TLS.
        grpcurl \
          -d @ \
          <HOST:PORT> \
          com.daml.ledger.api.v2.CommandCompletionService/GetCompletionByHash <<'EOF'
        {
          "transactionHash": "BASE64_ENCODED_BYTES"
        }
        EOF
        ```
      </div>
    </div>

    <div className="x2mdx-ref-rail-panel">
      <div className="x2mdx-ref-rail-code x2mdx-ref-rail-code--response">
        <div className="x2mdx-ref-rail-head">
          <span className="x2mdx-ref-rail-heading">OK</span>

          <span className="x2mdx-ref-response-label">application/json</span>
        </div>

        ```json OK theme={"theme":{"light":"github-light","dark":"github-dark"}}
        {
          "acceptedCompletion": {
            "commandId": "string",
            "status": "string",
            "updateId": "string",
            "userId": "string",
            "actAs": [
              "string"
            ],
            "submissionId": "string",
            "deduplicationOffset": "0"
          },
          "lastRejectedCompletions": [
            {
              "commandId": "string",
              "status": "string",
              "updateId": "string",
              "userId": "string",
              "actAs": [
                "string"
              ],
              "submissionId": "string",
              "deduplicationOffset": "0"
            }
          ]
        }
        ```
      </div>
    </div>
  </div>
</div>
