Ir al contenido
Documentación

Negocio

Importar un certificado digital

POST
/v1/business/import-signing-certificate
curl --request POST \
--url https://api.timbro.do/v1/business/import-signing-certificate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "certificateP12Base64": "example", "password": "example" }'

Entrega el archivo PKCS#12 y su contraseña a la custodia de Timbro una sola vez. Timbro usa el certificado en los modos de prueba y en vivo y en la certificación de la DGII, incluido un ambiente que el negocio vincule después. Si el negocio ya tiene un certificado, importar otro válido lo reemplaza en todos los ambientes a la vez; importar el mismo devuelve el resultado anterior. Importar el certificado no confirma la autorización de la DGII.

Media typeapplication/json

Ejemplogenerated

{
"certificateP12Base64": "example",
"password": "example"
}
object
certificateP12Base64
obligatorio
string
>= 24 characters <= 200000 characters
password
obligatorio
string
>= 1 characters <= 256 characters

Respuesta predeterminada

Media typeapplication/json
Campos y códigos de la respuesta

El negocio que selecciona la credencial, sus capacidades y los requisitos que faltan.

object
object
obligatorio
string
Valor permitido: business
id
obligatorio
string
/^business_[0-9a-hjkmnp-tv-z]{24,}$/
rnc
obligatorio
string
/^[0-9]{9}$/
legalName
obligatorio
string
>= 1 characters
economicActivity
obligatorio
Cualquiera de:
string
>= 1 characters <= 512 characters
revision
obligatorio
integer
capabilities
obligatorio

El live.status de facturas es active solo cuando el certificado digital en vivo está activo y al menos un tipo de e-CF de invoicing.live.documentTypes está ready. Una lista vacía o ilegible nunca es active; los requirements con mode: "live" indican qué falta.

object
payments
obligatorio
object
requested
obligatorio
boolean
test
obligatorio
object
status
obligatorio
Cualquiera de:
string
Valor permitido: active
live
obligatorio
object
status
obligatorio
Cualquiera de:
string
Valor permitido: active
invoices
obligatorio
object
requested
obligatorio
boolean
test
obligatorio
object
status
obligatorio
Cualquiera de:
string
Valor permitido: active
live
obligatorio
object
status
obligatorio
Cualquiera de:
string
Valor permitido: active
fiscalDetails
obligatorio
object
commercialName
obligatorio
Cualquiera de:
string
address
obligatorio
Cualquiera de:
string
location
obligatorio
Cualquiera de:
object
placeId
obligatorio
string
/^place_[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
catalogReleaseId
obligatorio
string
/^dr_[A-Za-z0-9._-]+$/
municipalityCode
obligatorio
Cualquiera de:
string
/^[0-9]{6}$/
name
obligatorio
string
>= 1 characters <= 160 characters
kind
obligatorio
Cualquiera de:
string
Valor permitido: country
qualityStatus
obligatorio
Cualquiera de:
string
Valor permitido: verified
ancestors
obligatorio

Los lugares que contienen al seleccionado, del más externo al más interno.

Array<object>
<= 32 items
object
placeId
obligatorio
string
/^place_[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/
name
obligatorio
string
>= 1 characters <= 160 characters
kind
obligatorio
Cualquiera de:
string
Valor permitido: country
qualityStatus
obligatorio
Cualquiera de:
string
Valor permitido: verified
phone
obligatorio
Cualquiera de:
string
email
obligatorio
Cualquiera de:
string
defaultIncomeType
obligatorio
Cualquiera de:
string
paymentsProfile
obligatorio
Cualquiera de:

Soporte, dirección y condiciones de entrega que ve el cliente. La razón social y el RNC son los del negocio.

object
displayName
obligatorio
string
>= 2 characters <= 80 characters /^(?=[\s\S]*\p{L})(?=\s*\S(?:[\s\S]*\S){1})(?!\s*(\S)\1*\s*$)[\s\S]+$/
statementDescriptor
obligatorio
string
>= 2 characters <= 22 characters /^(?=[\s\S]*\p{L})(?=\s*\S(?:[\s\S]*\S){1})(?!\s*(\S)\1*\s*$)[\s\S]+$/
permanentAddress
obligatorio

Dirección comercial permanente del comercio vendedor.

object
line1
obligatorio
string
>= 3 characters <= 160 characters /^(?=[\s\S]*\p{L})(?=\s*\S(?:[\s\S]*\S){2})(?!\s*(\S)\1*\s*$)[\s\S]+$/
city
obligatorio
string
>= 2 characters <= 80 characters /^(?=[\s\S]*\p{L})(?=\s*\S(?:[\s\S]*\S){1})(?!\s*(\S)\1*\s*$)[\s\S]+$/
countryCode
obligatorio
string
/^[A-Z]{2}$/
line2
string
>= 1 characters <= 160 characters /\S/
province
string
>= 1 characters <= 80 characters /\S/
postalCode
string
>= 1 characters <= 20 characters /\S/
supportEmail
obligatorio
string format: email
<= 254 characters
supportPhone
obligatorio
string
/^\+[1-9][0-9]{7,14}$/
deliveryPolicy
obligatorio
discriminator: kind
object
kind
obligatorio
string
Valor permitido: not_offered
paymentsProfileOrigin
obligatorio
Cualquiera de:
Cualquiera de:
string
Valor permitido: derived
invoicing
obligatorio
object
test
obligatorio
Cualquiera de:
object
status
obligatorio
string
Valor permitido: unavailable
cause
obligatorio
string
Valor permitido: timbro_unreachable
live
obligatorio
Cualquiera de:
object
status
obligatorio
string
Valor permitido: unavailable
cause
obligatorio
string
Valor permitido: timbro_unreachable
requirements
obligatorio
Array<object>

Algo que debe ocurrir antes de que una capacidad esté activa, y quién actúa sobre ello. Mientras una capacidad está activa, un requisito que de otro modo la bloquearía no bloquea nada y es una advertencia. La facturación en vivo lista como máximo un requisito por clase de causa (legal_issuer_profile_required, signing_certificate_required, sequence_required, sequence_confirmation_pending), cada uno con los documentTypes de e-CF que afecta. Cuando Timbro rechazó el perfil del emisor legal en vivo, la primera entrada es fiscal_details_rejected, con field /fiscalDetails. El merchant es responsable de todos salvo sequence_confirmation_pending, que espera a dgii. default_income_type_required está en desuso y ya no se devuelve: un negocio que factura y no tiene tipo de ingreso guardado lee 01.

object
code
obligatorio
Cualquiera de:
string
Valor permitido: capabilities_required
owner
obligatorio
Cualquiera de:
string
Valor permitido: merchant
blocks
obligatorio
Array
<= 2 items
mode
Cualquiera de:
string
Valor permitido: test
documentTypes

Los tipos de e-CF que este requisito impide emitir, en el orden de los tipos. Ausente cuando aplica a todo el ambiente.

Array
>= 1 items
field

JSON Pointer al campo de esta representación que nombra el requisito.

string
errors
Array<object>
>= 1 items
object
code
obligatorio
string
message
obligatorio
string
onboardingUrl
obligatorio
string format: uri
request-id
obligatorio
string

Identifica esta solicitud. Indícalo cuando contactes a soporte.

Retry-After
string
/^[0-9]+$/

Segundos que debes esperar antes de repetir esta solicitud o volver a consultar el recurso.