Negocio
Declarar el paso DGII de la certificación del negocio
const url = 'https://api.timbro.do/v1/business/certification/progress';const options = { method: 'POST', headers: { 'idempotency-key': 'example', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"expectedRevision":1,"dgiiStep":1,"postulationSoftware":{"kind":"timbro","name":"example"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.timbro.do/v1/business/certification/progress \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'idempotency-key: example' \ --data '{ "expectedRevision": 1, "dgiiStep": 1, "postulationSoftware": { "kind": "timbro", "name": "example" } }'Registra el paso que muestra el portal de certificación de la DGII, para un negocio que empezó la certificación en otro lugar o al que la DGII devolvió a un paso anterior. Los pasos anteriores se dan por completados para que la secuencia avance, y quedan como informados por el negocio. La declaración no sirve como evidencia ni verifica ningún paso, y nunca da acceso al modo en vivo. Solo una persona puede ver el portal de la DGII; un agente conectado envía el paso que esa persona le indica.
Autenticación
Sección titulada «Autenticación»Parámetros
Sección titulada «Parámetros»Parámetros de cabecera
Sección titulada «Parámetros de cabecera»Cuerpo de la solicitudobligatorio
Sección titulada «Cuerpo de la solicitudobligatorio»Paso que muestra el portal de certificación de la DGII. Un paso menor que el último declarado indica que la DGII devolvió al negocio a un paso anterior. Si omites postulationSoftware, Timbro conserva el último programa declarado.
object
Respuestas
Sección titulada «Respuestas»Preparación de la certificación y avance ante la DGII que informó el negocio autenticado. Nada de esto da acceso al modo en vivo.
Campos y códigos de la respuesta
object
Lo que falta, quién lo resuelve y qué pasos esperan por eso. Desde el paso 12, Timbro recibe en producción los documentos del negocio; un requisito production_reception_* detiene el paso 12 hasta que eso ocurra. Volver a informar o declarar el paso 12 lo intenta de nuevo cuando lo hace una persona propietaria o una clave de administrador; si el requisito está a cargo del equipo de Timbro, espera a que el equipo lo resuelva.
object
object
object
La única dirección por la que la DGII y otros emisores llegan al negocio, en certificación y en producción.
object
La dirección de recepción de Timbro, tal como la piden las casillas de la DGII, por ejemplo ecf.timbro.do. El negocio la escribe en Recepción, Aprobación comercial y Autenticación, en la postulación y en los pasos 7 y 12.
Lo que falta, quién lo resuelve y qué pasos esperan por eso. Desde el paso 12, Timbro recibe en producción los documentos del negocio; un requisito production_reception_* detiene el paso 12 hasta que eso ocurra. Volver a informar o declarar el paso 12 lo intenta de nuevo cuando lo hace una persona propietaria o una clave de administrador; si el requisito está a cargo del equipo de Timbro, espera a que el equipo lo resuelva.
object
Lo que puede hacer quien llama ahora. start_production_reception aparece cuando informar el paso 12 puede pedirle a Timbro que reciba en producción los documentos del negocio: para una persona propietaria o una clave de administrador, porque eso crea el vínculo de producción. sign_portal_document aparece solo cuando el Timbro de este despliegue firma documentos del portal de la DGII, existe el vínculo de certificación y quien llama confirma por sí mismo: una persona o una clave de administrador, no un agente. run_test_set aparece en las mismas condiciones cuando el Timbro de este despliegue ejecuta archivos de pruebas de certificación.
Último paso DGII que declaró el negocio. Los pasos anteriores se dan por completados para que la secuencia avance, y quedan como informados por el negocio. Una declaración nunca verifica un paso ni da acceso al modo en vivo.
object
Algo que el paso actual necesita del negocio, con la acción que lo completa. service_urls_in_dgii pide escribir la dirección de recepción en las casillas de la DGII en el paso 1, desde el paso 7 y desde el paso 12, y queda en done solo después de que el negocio informe ese paso desde Timbro. postulation_provider pide al negocio con la ruta external_software escribir en su postulación a INDEXA SRL como proveedor de servicios de facturación electrónica.
Un paso oficial de la DGII. basis indica de dónde viene su estado: declared_progress para un paso anterior al paso DGII declarado, business_report para un resultado informado y null cuando no hay nada registrado.
object
Resultado DGII informado por el negocio. Queda como informado: solo una respuesta de la DGII que Timbro reciba puede verificar un paso.
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
true cuando esta respuesta repite el resultado guardado de una solicitud anterior con la misma clave de idempotencia (Idempotency-Key).
No se pudo entender la solicitud.
Ejemplo
{ "type": "about:blank", "title": "No se pudo entender la solicitud.", "status": 400, "code": "parameter_missing", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
La credencial falta, tiene un formato incorrecto o ya no es válida.
Ejemplo
{ "type": "about:blank", "title": "La credencial falta, tiene un formato incorrecto o ya no es válida.", "status": 401, "code": "person_session_missing", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
La credencial es válida, pero no tiene permiso para realizar esta operación.
Ejemplo
{ "type": "about:blank", "title": "La credencial es válida, pero no tiene permiso para realizar esta operación.", "status": 403, "code": "operation_not_permitted", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
Ningún endpoint sirve este método y ruta, o no existe un recurso con este identificador dentro del alcance del solicitante.
Ejemplo
{ "type": "about:blank", "title": "Ningún endpoint sirve este método y ruta, o no existe un recurso con este identificador dentro del alcance del solicitante.", "status": 404, "code": "business_not_found", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
La solicitud entra en conflicto con el estado actual del recurso o con una solicitud anterior que usó la misma clave de idempotencia (Idempotency-Key).
Ejemplo
{ "type": "about:blank", "title": "La solicitud entra en conflicto con el estado actual del recurso o con una solicitud anterior que usó la misma clave de idempotencia (`Idempotency-Key`).", "status": 409, "code": "business_certification_requirements_unmet", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
Segundos que debes esperar antes de repetir esta solicitud o volver a consultar el recurso.
El cuerpo de la solicitud es más grande de lo que acepta este endpoint.
Ejemplo
{ "type": "about:blank", "title": "El cuerpo de la solicitud es más grande de lo que acepta este endpoint.", "status": 413, "code": "request_body_too_large", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
El cuerpo de la solicitud tiene un tipo de contenido que este endpoint no acepta.
Ejemplo
{ "type": "about:blank", "title": "El cuerpo de la solicitud tiene un tipo de contenido que este endpoint no acepta.", "status": 415, "code": "unsupported_media_type", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
La solicitud no pudo completarse. Recupera el resultado con la referencia guardada o repite la solicitud con la misma clave de idempotencia.
Ejemplo
{ "type": "about:blank", "title": "La solicitud no pudo completarse. Recupera el resultado con la referencia guardada o repite la solicitud con la misma clave de idempotencia.", "status": 500, "code": "internal_error", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.