Business
Retrieve the business certification process
const url = 'https://api.timbro.do/v1/business/certification';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.timbro.do/v1/business/certification \ --header 'Authorization: Bearer <token>'Returns the authenticated business’s DGII certification path, prerequisites, the declared DGII step, all 15 official steps with the source of each status, reported evidence, and what the current step needs. A reported or declared step is never verified and never grants Live access.
Authentication
Section titled “Authentication”Responses
Section titled “Responses”Durable certification preparation and user-reported DGII progress for the authenticated business. Nothing in it grants Live access.
Response fields and codes
object
What stands in the way, who resolves it, and which steps wait for it. From step 12, Timbro files the business’s live deliveries in production; a production_reception requirement blocks step 12 until it does. Recording or declaring step 12 again retries when an owner or an admin key does it; one the operator owns waits for Timbro’s team.
object
object
object
The one address DGII and other issuers reach the business at, in certification and in production.
object
Timbro’s receiver address, written as DGII’s boxes take it, for example ecf.timbro.do. The business enters it in Recepción, Aprobación comercial, and Autenticación, in the postulation and at steps 7 and 12.
What stands in the way, who resolves it, and which steps wait for it. From step 12, Timbro files the business’s live deliveries in production; a production_reception requirement blocks step 12 until it does. Recording or declaring step 12 again retries when an owner or an admin key does it; one the operator owns waits for Timbro’s team.
object
What the caller can do now. start_production_reception appears when recording step 12 can ask Timbro to receive the business’s documents in production: for an owner or an admin key, since that creates the production binding. sign_portal_document appears only when this deployment’s Timbro signs DGII portal documents, the certification binding exists, and the caller confirms as itself: a person or an admin key, not an agent. run_test_set appears under the same conditions when this deployment’s Timbro runs certification test sets.
The latest DGII step the business declared. Earlier steps count as done for sequencing and stay user-reported; a declaration never verifies a step or grants Live access.
object
One thing the current step needs from the business, with the action that completes it. service_urls_in_dgii asks for the receiver host in DGII’s boxes at step 1, from step 7, and from step 12, and is done only after the business reports that step through Timbro. postulation_provider asks the business of an external_software certification to enter INDEXA SRL as the DGII provider in its postulation.
One official DGII step. basis names the source of its status: declared_progress for a step below the declared DGII step, business_report for a reported outcome, and null when nothing is recorded.
object
A business-reported DGII outcome. It stays user-reported: only a DGII answer Timbro observes can verify a step.
Headers
Section titled “Headers”Identifies this request. Quote it when you contact support.
The request could not be understood.
Example
{ "type": "about:blank", "title": "The request could not be understood.", "status": 400, "code": "parameter_invalid", "requestId": "request_000000000000000000000001"}Response fields and codes
RFC 9457 problem details. Every failure of this API is one of these, and each operation narrows code to the subset it can emit.
object
Stable machine-readable code. Branch on this, never on title.
Optional fields
Present only when the rejected request produced a Fiscal operation.
Present only when the authoritative issuance rules refused to issue.
Present only when the rejection points at a value the request carried.
One stable public document problem retained for a rejected admission.
object
Headers
Section titled “Headers”Identifies this request. Quote it when you contact support.
The credential is missing, malformed, or no longer valid.
Example
{ "type": "about:blank", "title": "The credential is missing, malformed, or no longer valid.", "status": 401, "code": "person_session_missing", "requestId": "request_000000000000000000000001"}Response fields and codes
RFC 9457 problem details. Every failure of this API is one of these, and each operation narrows code to the subset it can emit.
object
Stable machine-readable code. Branch on this, never on title.
Optional fields
Present only when the rejected request produced a Fiscal operation.
Present only when the authoritative issuance rules refused to issue.
Present only when the rejection points at a value the request carried.
One stable public document problem retained for a rejected admission.
object
Headers
Section titled “Headers”Identifies this request. Quote it when you contact support.
The credential is valid but not permitted to perform this operation.
Example
{ "type": "about:blank", "title": "The credential is valid but not permitted to perform this operation.", "status": 403, "code": "operation_not_permitted", "requestId": "request_000000000000000000000001"}Response fields and codes
RFC 9457 problem details. Every failure of this API is one of these, and each operation narrows code to the subset it can emit.
object
Stable machine-readable code. Branch on this, never on title.
Optional fields
Present only when the rejected request produced a Fiscal operation.
Present only when the authoritative issuance rules refused to issue.
Present only when the rejection points at a value the request carried.
One stable public document problem retained for a rejected admission.
object
Headers
Section titled “Headers”Identifies this request. Quote it when you contact support.
No endpoint serves this method and path, or no resource with this identifier exists within the caller’s scope.
Example
{ "type": "about:blank", "title": "No endpoint serves this method and path, or no resource with this identifier exists within the caller's scope.", "status": 404, "code": "business_not_found", "requestId": "request_000000000000000000000001"}Response fields and codes
RFC 9457 problem details. Every failure of this API is one of these, and each operation narrows code to the subset it can emit.
object
Stable machine-readable code. Branch on this, never on title.
Optional fields
Present only when the rejected request produced a Fiscal operation.
Present only when the authoritative issuance rules refused to issue.
Present only when the rejection points at a value the request carried.
One stable public document problem retained for a rejected admission.
object
Headers
Section titled “Headers”Identifies this request. Quote it when you contact support.
The request could not complete. Recover by the retained resource reference or retry with the same command identity.
Example
{ "type": "about:blank", "title": "The request could not complete. Recover by the retained resource reference or retry with the same command identity.", "status": 500, "code": "internal_error", "requestId": "request_000000000000000000000001"}Response fields and codes
RFC 9457 problem details. Every failure of this API is one of these, and each operation narrows code to the subset it can emit.
object
Stable machine-readable code. Branch on this, never on title.
Optional fields
Present only when the rejected request produced a Fiscal operation.
Present only when the authoritative issuance rules refused to issue.
Present only when the rejection points at a value the request carried.
One stable public document problem retained for a rejected admission.
object
Headers
Section titled “Headers”Identifies this request. Quote it when you contact support.