Skip to main content
POST
/
credentials
Crear credencial
curl --request POST \
  --url https://api.tupana.ai/v1/credentials \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "user_rut": "12345678-9",
  "password": "mi_password_segura",
  "digital_certificate_password": "mi_password_certificado",
  "master_entity_id": 123
}
'
{
  "id": 1,
  "user": "12345678-9",
  "master_entity": {
    "id": 123,
    "name": "Empresa Ejemplo SpA",
    "tax_id": "76543210-1"
  },
  "credential_type": {
    "id": 70,
    "name": "SII"
  },
  "status": "VALID",
  "created_at": "2024-01-01T10:00:00Z"
}

Que hace

  • Crea una nueva credencial para autenticacion en el SII
  • Valida automaticamente las credenciales proporcionadas antes de almacenarlas
  • Asocia la credencial con una entidad maestra especifica
  • Verifica que los datos sean correctos en el SII

Ejemplos de uso

  • Configurar credenciales del SII para una nueva empresa
  • Agregar credenciales adicionales para una entidad existente
  • Reemplazar credenciales expiradas o invalidas
  • Configurar multiples credenciales para diferentes entidades

Obtener el master_entity_id

El master_entity_id es el ID unico de la empresa en Tu Pana que se esta asociando con estas credenciales. Para obtener este ID, debes usar el endpoint /master-entities:
  1. Buscar la entidad por RUT usando GET /master-entities?rut=76543210-1
  2. Obtener el ID de la respuesta (campo id)
  3. Usar ese ID como master_entity_id en la creacion de credenciales

Tipos de Credenciales

Puedes usar credential_type (string) o credential_type_id (numerico) para indicar el tipo de credencial. Consulta la referencia completa de tipos de credenciales para mas detalles.
Tipo (credential_type)ID (credential_type_id)Descripcion
sii70Servicio de Impuestos Internos (clave tributaria)
sii_company73SII a nivel de empresa (clave de empresa)
certificate75Certificado digital (.pfx)
bank_chile84Banco de Chile
bank_estado85BancoEstado
bank_santander86Santander
bank_scotiabank87Scotiabank

Certificado digital (.pfx) por archivo

Si necesitas subir un certificado digital, el archivo .pfx se envia en el payload JSON como string base64.
  • Convierte primero el archivo .pfx a base64
  • Envia ese valor en el campo digital_certificate_base64
  • Envia digital_certificate_password si corresponde
  • Envia credential_type: "certificate" para guardarlo como credencial de certificado digital

Ejemplo de payload

{
  "master_entity_id": 123,
  "credential_type": "certificate",
  "digital_certificate_password": "clave-del-pfx",
  "digital_certificate_base64": "MIIK..."
}

Importante

  • El .pfx se envia como string base64 en digital_certificate_base64
  • En este flujo no se envian user_rut ni password
  • El backend guarda la credencial como tipo certificado digital

Authorizations

Authorization
string
header
required

API Key para autenticación. Debe proporcionarse en el header Authorization con el formato: 'Api-Key YOUR-API-KEY' (incluye el prefijo 'Api-Key ' seguido de tu API key)

Body

application/json
user_rut
string
required

RUT del usuario (sin puntos y con guión)

Pattern: ^[0-9]+-[0-9kK]$
Example:

"12345678-9"

password
string
required

Contraseña del usuario en el SII

Example:

"mi_password_segura"

digital_certificate_password
string
required

Contraseña del certificado digital

Example:

"mi_password_certificado"

master_entity_id
integer
required

ID de la entidad maestra a la que pertenece la credencial

Example:

123

credential_type
enum<string>

Tipo de credencial (recomendado). Valores: sii, sii_company, certificate, bank_chile, bank_estado, bank_santander, bank_scotiabank

Available options:
sii,
sii_company,
certificate,
bank_chile,
bank_estado,
bank_santander,
bank_scotiabank
Example:

"sii"

credential_type_id
integer

ID del tipo de credencial (opcional, por defecto SII)

Example:

70

Response

Credencial creada exitosamente

id
integer

ID único de la credencial creada

Example:

1

user
string

RUT del usuario de la credencial

Example:

"12345678-9"

master_entity
object

Información de la entidad maestra asociada

credential_type
object

Tipo de credencial

status
enum<string>

Estado de la credencial

Available options:
VALID,
INVALID,
EXPIRED
Example:

"VALID"

created_at
string<date-time>

Fecha de creación de la credencial

Example:

"2024-01-01T10:00:00Z"