Authentication
Authenticate every request with an API key.
Keys have the format corvo_test_ or corvo_live_ followed by 40 lowercase hexadecimal characters.
Headers
| Header | Usage |
|---|---|
X-API-Key | Required for key authentication. |
Content-Type: application/json | JSON bodies. |
Idempotency-Key | Optional on issuance and email requests; recommended for safe retries of those operations. |
Certificate upload uses multipart/form-data. With curl -F, let curl generate the Content-Type with the boundary. Downloads return PDF or XML with no JSON envelope.
Environments
- Companies, certificates and invoices are accessed in the key's persisted environment:
testorlive. - In
live, issuance verifies the company, blocks and active certificate; credits and issuance limits also apply. - In
test, issuance requires an existing company but skips the readiness and certificate checks of theliveflow. - Webhook deliveries use the explicit
?environment=test|livefilter; without it, they may return both of the account's environments, regardless of the key's environment.
Scopes
| Code used in this reference | Scope |
|---|---|
| F | full_access |
| I | invoices_issue |
| V | invoices_view |
| RW | invoices_read_write |
F accepts every operation listed. I allows issuing and requesting email. V allows fetching invoices, documents, events and download URLs. RW combines invoice issuance and fetching, company fetching, certificate listing, and fetching of webhooks/deliveries/statistics. RW does not allow modifying companies, certificates, webhooks, credits or plans. Even F only reaches API-key-enabled routes; scope permissions do not open other routes.
Example
bash
export BASE_URL='https://api.corvo.tech/v1'
export CORVO_API_KEY='corvo_test_your_key'
curl "$BASE_URL/companies" -H "X-API-Key: $CORVO_API_KEY"