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

# Consultar CT-e por chave

> Situação do CT-e na SEFAZ com $cte->byAccessKey() — essencial em QueryBeforeRetry.

## O quê / quando

Depois de timeout ambíguo, processamento ou para reconciliar estado — consulte pela chave de acesso de 44 dígitos.

## Exemplo

```php theme={null}
use Suot\Fiscal\Core\Exception\InfrastructureException;
use Suot\Fiscal\Core\Result\RetryMode;

try {
    $result = $cte->byAccessKey()
        ->forOperation('query-key-1')
        ->inHomologation()
        ->accessKey($chave44)
        ->handle();
} catch (InfrastructureException $e) {
    $failure = $e->toFailure('query');
    // Host: alertar; filar consulta conforme $failure->retryPolicy; não reemitir às cegas
    throw $e;
}

if ($result->isFound()) {
    // Host: reconciliar estado (protocolo, cStat); não reemitir se já autorizado
}

if (! $result->isFound()) {
    $failure = $result->failure();
    $policy = $result->retryPolicy();
    match ($policy?->mode) {
        RetryMode::AfterDelay, RetryMode::Immediate => /* filar nova consulta */,
        RetryMode::Never, null => /* decidir reemissão só com novo forOperation se fizer sentido */,
        default => /* seguir recoveryGuide */,
    };
}
```

Resultado: `CteQueryResult`.

<Tip>
  Em risco de duplicidade (`RetryMode::QueryBeforeRetry`), consulte **antes** de reenviar a emissão.
</Tip>

Ver [Retry](/fiscal/retry).
