> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openpayload.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit Application registration

> Submit a control DID signature for a prepared Application registration

First [prepare the registration](/api-reference/directory/applications/prepare-registration). Sign the decoded `canonical_payload` bytes with the control DID key named in that request.

## Request

<ParamField path="applicationId" type="string" required>
  Same Application ID used during preparation.
</ParamField>

<ParamField body="control_did" type="string" required>
  Active control DID used during preparation.
</ParamField>

<ParamField body="signer_key_id" type="string" required>
  Control DID verification-method ID used during preparation.
</ParamField>

<ParamField body="nonce" type="integer" required>
  Current nonce returned by preparation.
</ParamField>

<ParamField body="canonical_payload" type="string" required>
  Exact `0x`-prefixed hexadecimal payload returned by preparation.
</ParamField>

<ParamField body="signature" type="string" required>
  Base64-encoded 64-byte Ed25519 signature over the decoded payload bytes.
</ParamField>

```bash theme={null}
curl --request PUT \
  --url "https://directory.example.com/applications/example/registration" \
  --header "Content-Type: application/json" \
  --data '{"control_did":"did:openpayload:1111111111111111111111","signer_key_id":"did:openpayload:1111111111111111111111#signing","nonce":0,"canonical_payload":"0x<prepared-payload>","signature":"<base64-signature>"}'
```

Replace the nonce and both placeholders with the actual prepared values. `202 Accepted` returns `application_id`, `status: "accepted"`, and `tx_hash`. It means chain submission, not final registration. Poll [Get an Application](/api-reference/directory/applications/get) until the record appears in finalized state. A stale nonce or payload returns `409 application_proof_stale`; prepare and sign again.

## Straight to the point

```text theme={null}
PUT /applications/{applicationId}/registration
Sign: decoded canonical_payload bytes
Accepted submission: 202; verify finalization with GET /applications/{applicationId}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.