Ir al contenido

Subir certificado .p12

POST
/v1/issuers/{issuerId}/certificates
curl --request POST \
--url https://api.chaski.ec/v1/issuers/example/certificates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "file": "example", "password": "example" }'

Se valida la contraseña, la vigencia y que corresponda al RUC del emisor. El anterior pasa a replaced. El certificado sirve en los dos ambientes, por eso exige una key sk_live_ (403 live_key_required).

issuerId
required
string
Media typeapplication/json
object
file
required
string format: base64
>= 1 characters /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/
password
required
string

Example generated

{
"file": "example",
"password": "example"
}

OK

Media typeapplication/json
object
id
required
string
status
required
string
Allowed values: active replaced expired revoked
subject
required
string
subject_id
required

Cédula o RUC encontrado en el certificado

string | null
issued_by
required
string
serial_number
required
string
sha1_fingerprint
required
string
valid_from
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
expires_at
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
created_at
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
warnings
required
Array<string>
Allowed values: certificate_expiring_soon certificate_ruc_not_found

Example

{
"id": "cert_01jbx3k9q2f8m4tn6vwz0yh5ce",
"status": "active",
"warnings": [
"certificate_expiring_soon"
]
}

Petición inválida

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Falta la API key o no es válida

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Sin permiso (cuenta suspendida, emisor no habilitado en producción, límite del plan…)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

No existe

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Conflicto (recurso repetido, Idempotency-Key en curso…)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

No se puede procesar (certificado vencido, Idempotency-Key reutilizada…)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Demasiadas peticiones

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}