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

# Revoke a Submitted Due Diligence Statement

> Permanently revoke a submitted DDS to invalidate an erroneous or superseded declaration, triggering a withdrawal notification to TRACES NT and locking the record.

If a submitted Due Diligence Statement contains incorrect data, has been superseded by an updated declaration, or must be withdrawn for any legal or operational reason, you can revoke it through this endpoint. Revocation permanently invalidates the DDS within the AgriBackup system and dispatches a withdrawal notification to TRACES NT. The revocation event and timestamp are anchored on the Hedera ledger for immutable audit evidence. A revoked DDS cannot be resubmitted — you must generate and submit a fresh statement if a corrected declaration is required.

## Endpoint

`POST /api/v1/enterprise/eudr/declarations/dds/{referenceId}/revoke`

## Path Parameters

<ParamField path="referenceId" type="string" required>
  The unique reference identifier of the DDS you want to revoke. A statement that is already in a terminal state may not be revocable — contact your AgriBackup account team if you need to withdraw a fully validated declaration.
</ParamField>

## Response Fields

<ResponseField name="success" type="boolean">
  Indicates whether the revocation was processed successfully and the TRACES NT withdrawal notification was dispatched.
</ResponseField>

<ResponseField name="tracesReferenceNumber" type="string">
  The original TRACES NT submission reference number of the revoked DDS, confirming which declaration was withdrawn.
</ResponseField>

<ResponseField name="hederaTransactionId" type="string">
  The Hedera consensus transaction ID anchoring the revocation event on the distributed ledger for immutable audit evidence.
</ResponseField>

<ResponseField name="revokedAt" type="string">
  ISO 8601 timestamp indicating when the revocation was processed.
</ResponseField>

<ResponseField name="message" type="string">
  A human-readable message describing the outcome of the revocation request.
</ResponseField>

## Code Examples

<CodeGroup>
  ```python Python theme={null}
  import agribackup
  from agribackup.rest import ApiException

  configuration = agribackup.Configuration(host="https://live.agribackup.com/api/v1")
  configuration.api_key['ApiKeyAuth'] = 'sk_live_YOUR_API_KEY'

  with agribackup.ApiClient(configuration) as api_client:
      try:
          declarations_api = agribackup.EnterpriseDeclarationsApi(api_client)

          reference_id = "DDS-AB12CD34"
          response = declarations_api.revoke_dds(reference_id=reference_id)

          print("Success:", response.success)
          print("TRACES reference:", response.traces_reference_number)
          print("Revoked at:", response.revoked_at)
          print("Message:", response.message)

      except ApiException as e:
          print("Exception when calling EnterpriseDeclarationsApi: %s\n" % e)
  ```

  ```javascript Node.js theme={null}
  import { AgriBackupClient } from '@agribackup/sdk';

  const client = new AgriBackupClient({
    apiKey: 'sk_live_YOUR_API_KEY',
    baseUrl: 'https://live.agribackup.com/api/v1'
  });

  async function revokeDds() {
    try {
      const referenceId = 'DDS-AB12CD34';
      const response = await client.declarations.revokeDds(referenceId);

      console.log('Success:', response.success);
      console.log('TRACES reference:', response.tracesReferenceNumber);
      console.log('Revoked at:', response.revokedAt);
      console.log('Message:', response.message);
    } catch (error) {
      console.error('Error revoking DDS:', error.message);
    }
  }

  revokeDds();
  ```

  ```bash cURL theme={null}
  curl --request POST \
    --url https://live.agribackup.com/api/v1/enterprise/eudr/declarations/dds/DDS-AB12CD34/revoke \
    --header 'X-API-Key: sk_live_YOUR_API_KEY'
  ```
</CodeGroup>

## Example Response

```json theme={null}
{
  "success": true,
  "tracesReferenceNumber": "TRACES-2026-EU-00441",
  "hederaTransactionId": "0.0.12345@1234567890.000000000",
  "revokedAt": "2026-07-16T08:12:44Z",
  "message": "DDS successfully revoked and withdrawal notification dispatched to TRACES NT"
}
```

<Warning>
  Revocation is irreversible. A revoked DDS cannot be reinstated, re-submitted, or edited. If you need to file a corrected declaration, generate a new DDS using `POST /api/v1/enterprise/eudr/declarations/dds` and submit it as a fresh record.
</Warning>

<Note>
  All revocations are recorded in the immutable audit log anchored on Hedera Hashgraph. The revocation event and timestamp are cryptographically preserved alongside the original DDS record.
</Note>
