Document Validation API: Documentation and Integrations
Dynadok can be used through the platform, through the API, or both. For your engineering team, here is what matters: it takes two endpoints to get document validation running — a POST that sends the file and a GET that returns the extracted data. API-key authentication, plain HTTP requests, JSON responses.
The Dynadok API has the base URL https://api.dynadok.com and authenticates through the x-api-key header. You send the document to POST /v1/api/documents, receive an id with a processing status and fetch the result from GET /v1/api/documents/{id}. No need to replace your ERP, HRIS, LMS or student information system: Dynadok integrates with the environment you already have.
From zero to your first validated document
Three steps. Any HTTP client will do: cURL, Postman or your language’s standard library.
Get your API key
Authentication uses the x-api-key header with the key provided by Dynadok. Requests without a key, or with an invalid or expired key, return 401 Unauthorized.
https://api.dynadok.com
Send the document
A multipart POST with the file in files and the document type in type. The response returns the id and the processing status.
curl --location 'https://api.dynadok.com/v1/api/documents' \ --header 'x-api-key: your_api_key' \ --form 'files=@"/path/to/file.pdf"' \ --form 'type="RG"'Response
{
"id": "123456",
"status": "processing"
}
Retrieve the extracted data
With the id in hand, query the processed document. The response returns the status and the fields extracted by the AI.
curl -X GET "https://api.dynadok.com/v1/api/documents/{id}" \ --header 'x-api-key: your_api_key'Response
{
"id": "123456",
"status": "processed",
"data": {
"nome": "John Smith",
"documento": "123456789",
"data_emissao": "2023-01-01"
}
}
Python example
Nothing exotic: an HTTP request with requests. The same applies to axios or fetch in JavaScript and HttpClient in Java or C#.
import requests url = 'https://api.dynadok.com/v1/api/documents' payload = {'type': 'CERTIDAO_DE_NASCIMENTO'} files = [ ('files', ('file_name.pdf', open('file_name.pdf', 'rb'), 'application/pdf')) ] headers = { 'x-api-key': '••••••' } response = requests.request("POST", url, headers=headers, data=payload, files=files) print(response.text)
Endpoints
| Method | Route | Description |
|---|---|---|
POST |
/v1/api/documents |
Sends a document (image or PDF) for processing. Returns the id and the initial status. |
GET |
/v1/api/documents/{id} |
Returns the information extracted from an already processed document. |
The full reference, with headers, parameters and up-to-date examples, lives in the technical documentation: doc.dynadok.com. Workflows, rules and integrations specific to your project are defined in the implementation scope.
Examples of document types
Each type has its own description and return interface in the documentation. The catalog grew out of Brazilian projects and keeps evolving: document types for your country and your process — national IDs, driver’s licenses, passports, proof of address, payslips, tax filings, transcripts, corporate registrations — are configured within the implementation scope.
Validation rules
The documentation describes the rules that apply to document acceptance. Each rule has properties that define how the document must be validated and accepted — that is what lets the analysis adapt to each operation’s process.
- Driver’s license category
CNH_CATEGORY - Company registration status
CNPJ_REGISTRATION_STATUS - Company size
COMPANY_SIZE - Reference period
COMPETENCY - Taxpayer ID status
CPF_STATUS - Issue date
EMISSION_DATE - Expiration date
EXPIRATION_DATE - Location
LOCATION - Opening date
OPENING_DATE - Ownership
OWNERSHIP - Start of activities
START_OF_ACTIVITIES - Transcript level and status
STATUS_DEGREE_HISTORICO_ESCOLAR - Substitute documents
SUBSTITUTE_DOCUMENTS
Rules such as expiration date, ownership and substitute documents are what turn data extraction into real validation: reading the field is not enough, you have to decide whether that document is acceptable for that process, at that moment and for that person.
Platform, API, or both
Platform only
Teams work in the Dynadok interface, with configured checklists and workflows. Third parties and applicants upload documents straight to the platform and get a non-compliance notification within seconds.
API only
Validation happens inside your own systems: you send documents via HTTP request and receive the extracted data and the rule results, without the end user ever leaving your environment.
Platform + API
Submission and analysis run through the API, while the operations team uses the platform to handle exceptions, monitor queues and audit what was decided.
No need to replace your ERP or core systems. Dynadok adapts to your current environment and integrates with existing systems, keeping your workflow intact. Platform and API access is included in the contract, within the project scope, with no per-user or per-license charge.
Most common error codes
| Code | Common cause | What to do |
|---|---|---|
400 Bad Request | Malformed data or missing required parameters | Check the request structure and parameters against the documentation |
401 Unauthorized | API key missing, invalid or expired | Make sure the key is correct and included in the header |
403 Forbidden | API key lacks the required permissions | Check that the key is allowed to access the requested resource |
404 Not Found | Wrong endpoint URL or non-existent resource | Confirm the route and that the resource exists |
405 Method Not Allowed | Wrong HTTP method for the resource | Use the method specified in the documentation |
429 Too Many Requests | Too many requests in a short period | Implement retries with exponential backoff |
500 / 502 / 503 / 504 | Internal error, bad gateway, temporary unavailability or timeout | Retry the request later and, if it persists, contact support |
Integration requirements
Nothing beyond what already exists in any stack that consumes a REST API.
- API key provided by Dynadok, sent in the
x-api-keyheader - HTTP client: cURL, Postman or your language’s library
- Python:
requests - JavaScript:
axiosorfetch - Java and C#:
HttpClient - Format: multipart file upload and JSON response
Security in the integration
All traffic between customer systems, browsers and the Dynadok platform is protected with TLS 1.2 or higher. Documents and extracted data are stored encrypted with AES-256, with logical segregation between customers and audit trails for access, download and export.
Treat the API key as a credential: keep it out of your repository and front end, and prefer environment variables or a secrets vault.
Questions from the people who will integrate
At doc.dynadok.com. The documentation covers API integration, supported document types with their return interfaces, validation rules, usage examples and handling of the most common errors.
Through an API key sent in the x-api-key header, provided by Dynadok. Requests without a key, or with an invalid or expired key, return 401 Unauthorized; a key without permission for the resource returns 403 Forbidden.
The upload endpoint accepts images or PDFs. The AI processes structured, semi-structured, unstructured and even handwritten documents, with advanced OCR and computer vision, including scans and long files.
No. The upload immediately returns an id with status processing, and the result is retrieved later from GET /v1/api/documents/{id}, which returns status processed and the extracted data. In practice, validation takes seconds.
The types shown here are only examples, and the documented list evolves with each project. New document types, rules and workflows — including documents specific to your country or industry — are assessed and configured within the implementation scope. Additions after the original scope may require a new technical and commercial assessment.
Yes. Each rule has properties that define how the document must be validated and accepted — issue and expiration dates, ownership, location, registration status, substitute documents and more. Checklists are built per document type and per process, with your operation’s criteria.
No. Dynadok adapts to your current environment and integrates with existing systems, keeping your workflow intact. You can use only the API, only the platform, or both models combined.
There is no additional charge per user, seat or license: platform and API access is included in the contract, within the project scope. The recurring cost is determined by the volume of pages processed by the AI. See the pricing and billing model for details.
Support channels are listed in the documentation itself, at doc.dynadok.com. During implementation, the Dynadok project team follows the development of the in-scope integrations, testing, acceptance and go-live.