---
title: "Get a Certificate of Good Standing request"
method: GET
path: "/api/v1/legal_entities/{id}/certificate_requests/{requestId}"
tags: ["Entity filings"]
---

# Get a Certificate of Good Standing request

`GET /api/v1/legal_entities/{id}/certificate_requests/{requestId}`

Poll until `statusId` is `Issued`, `Rejected`, or `Cancelled`, then stop. Only `Issued` provides the certificate PDF at `documentUrl`, also listed in the entity documents. For `Rejected`, show `rejectionReason`; cancellation or rejection is terminal and must not trigger automatic repayment. Standard keys act on every entity the key owner actively represents. Agent Keys are limited to entities incorporated through the API and need active representation and the listed `agent:entity.filing.*` scope. Agent writes also require an active Manifestation of Will. OAuth tokens and Partner Keys cannot call these filing endpoints. See https://docs.eprospera.com/entity-filings for signing, payment, and recovery. Agent scope: `agent:entity.filing.read`.

Account deactivation revokes personal API keys, including Agent Keys, and OAuth authorizations. Account reactivation requires new API keys, including new Agent Keys, and consent; previously issued credentials remain invalid.

## Path parameters

- `id` string, uuid, required
- `requestId` string, uuid, required

## Response `200`

Certificate request.

- object — Successful response.
  - `data` CertificateRequest, required
    - `id` string, uuid, required
    - `legalEntityId` string, uuid, required
    - `type` 'certificate_of_good_standing', required
    - `statusId` 'Draft' | 'Pending Payment' | 'Pending Review' | 'Approved' | 'Issued' | 'Rejected' | 'Cancelled', required — Pending Payment: awaiting payment or asynchronous payment processing; check invoice status before paying again. Pending Review: awaiting registrar review, including contested or unresolved tax compliance. Approved: PDF generation in progress. Issued: certificate available at `documentUrl`. Issued, Rejected, and Cancelled are terminal: stop polling on each. Rejected and Cancelled do not yield a certificate.
    - `contested` boolean, required
    - `taxContestNote` string, nullable, required
    - `taxPaymentProofUrl` string, uri, nullable, required
    - `contestedAt` string, date-time, nullable, required
    - `rejectionReason` string, nullable, required
    - `reviewedAt` string, date-time, nullable, required
    - `issuedAt` string, date-time, nullable, required
    - `documentId` string, uuid, nullable, required
    - `documentUrl` string, uri, nullable, required
    - `invoice` FilingInvoice, nullable, required
      - `id` string, uuid, required
      - `statusId` string, required — Invoice status, for example `open` or `paid`.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `nextSteps` CertificateRequestNextSteps, required
      - `paymentRequired` boolean, required
      - `awaitingReview` boolean, required
      - `issued` boolean, required

## Other responses

- `400` — Validation error or precondition failure.
- `401` — Missing or invalid credential.
- `403` — Credential lacks the required scope (Agent Key) or insufficient OAuth scope.
- `404` — Resource does not exist or is invisible to the caller. The two are intentionally indistinguishable.
- `409` — Conflicting state (e.g. legal-entity name already taken).
- `429` — Rate limit exceeded. No `Retry-After` header is currently emitted; back off exponentially.
- `500` — Server error.

## Changes

- **2026-09-22** `d2c5a5cda002` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/eprospera/apis/e-pro-spera-api/changes/api/v1/legal_entities/:id/certificate_requests/:requestId/get.md)

---

[API](https://skmtc.dev/eprospera/apis/e-pro-spera-api.md) · [All operations](https://skmtc.dev/eprospera/apis/e-pro-spera-api/llms.txt) · [OpenAPI document](https://skmtc.dev/eprospera/apis/e-pro-spera-api/revisions/6fbf9c9b36b5?raw)
