apacuana-sdk-core 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -164
- package/coverage/clover.xml +338 -302
- package/coverage/coverage-final.json +9 -9
- package/coverage/lcov-report/index.html +31 -31
- package/coverage/lcov-report/src/api/certs.js.html +1 -1
- package/coverage/lcov-report/src/api/faceLiveness.js.html +34 -7
- package/coverage/lcov-report/src/api/index.html +13 -13
- package/coverage/lcov-report/src/api/revocations.js.html +50 -5
- package/coverage/lcov-report/src/api/signatures.js.html +17 -56
- package/coverage/lcov-report/src/api/users.js.html +20 -5
- package/coverage/lcov-report/src/config/index.html +1 -1
- package/coverage/lcov-report/src/config/index.js.html +1 -1
- package/coverage/lcov-report/src/errors/index.html +1 -1
- package/coverage/lcov-report/src/errors/index.js.html +8 -8
- package/coverage/lcov-report/src/index.html +13 -13
- package/coverage/lcov-report/src/index.js.html +59 -14
- package/coverage/lcov-report/src/success/index.html +1 -1
- package/coverage/lcov-report/src/success/index.js.html +5 -5
- package/coverage/lcov-report/src/utils/constant.js.html +1 -1
- package/coverage/lcov-report/src/utils/helpers.js.html +277 -16
- package/coverage/lcov-report/src/utils/httpClient.js.html +32 -17
- package/coverage/lcov-report/src/utils/index.html +22 -22
- package/coverage/lcov.info +641 -561
- package/dist/api/revocations.d.ts +6 -3
- package/dist/api/users.d.ts +16 -6
- package/dist/index.d.ts +0 -2
- package/dist/index.js +149 -147
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +149 -147
- package/dist/index.mjs.map +1 -1
- package/dist/types/faceLiveness.d.ts +6 -5
- package/dist/types/revocations.d.ts +26 -15
- package/dist/types/signatures.d.ts +73 -63
- package/dist/utils/helpers.d.ts +4 -2
- package/package.json +1 -1
- package/src/api/faceLiveness.js +13 -4
- package/src/api/revocations.js +18 -3
- package/src/api/signatures.js +8 -21
- package/src/api/users.js +8 -3
- package/src/index.js +22 -7
- package/src/types/faceLiveness.js +11 -2
- package/src/types/revocations.js +29 -9
- package/src/types/signatures.js +47 -28
- package/src/utils/helpers.js +95 -8
- package/src/utils/httpClient.js +15 -10
- package/tests/api/faceLiveness.test.js +28 -30
- package/tests/api/revocations.test.js +4 -4
- package/tests/api/signatures.test.js +73 -16
- package/tests/index.test.js +16 -8
package/README.md
CHANGED
|
@@ -1,49 +1,22 @@
|
|
|
1
1
|
# Apacuana SDK Core
|
|
2
2
|
|
|
3
3
|
## Descripción
|
|
4
|
-
|
|
5
|
-
Apacuana SDK Core es una biblioteca de JavaScript que proporciona una interfaz para interactuar con los servicios de Apacuana, permitiendo la generación de certificados digitales, firma de documentos, y otras operaciones relacionadas con la identidad digital.
|
|
4
|
+
`Apacuana SDK Core` es una biblioteca de JavaScript que proporciona una interfaz para interactuar con los servicios de Apacuana, permitiendo la generación de certificados digitales, firma de documentos, y otras operaciones relacionadas con la identidad digital.
|
|
6
5
|
|
|
7
6
|
## Tabla de Contenidos
|
|
8
|
-
|
|
9
7
|
- [Instalación](#instalación)
|
|
10
8
|
- [Inicialización](#inicialización)
|
|
11
9
|
- [Conceptos Clave](#conceptos-clave)
|
|
12
|
-
- [Tipos de Integración](#tipos-de-integración)
|
|
13
10
|
- [Interfaz Pública](#interfaz-pública)
|
|
14
|
-
- [`init(config)`](#initconfig)
|
|
15
|
-
- [`close()`](#close)
|
|
16
|
-
- [`getConfig()`](#getconfig)
|
|
17
|
-
- [`getCustomer()`](#getcustomer)
|
|
18
|
-
- [`generateCert(encryptedCSR)`](#generatecertencryptedcsr)
|
|
19
|
-
- [`getCertStatus(isCertificateInDevice)`](#getcertstatusiscertificateindevice)
|
|
20
|
-
- [`getCertTypes()`](#getcerttypes)
|
|
21
|
-
- [`getRequerimentsByTypeUser(params)`](#getrequerimentsbytypeuserparams)
|
|
22
|
-
- [`requestCertificate(params)`](#requestcertificateparams)
|
|
23
|
-
- [`addSigner(signerData)`](#addsignersignerdata)
|
|
24
|
-
- [`getDocs(data)`](#getdocsdata)
|
|
25
|
-
- [`getDigest(signData)`](#getdigestsigndata)
|
|
26
|
-
- [`signDocument(signData)`](#signdocumentsigndata)
|
|
27
|
-
- [`uploadSignatureVariant(data)`](#uploadsignaturevariantdata)
|
|
28
|
-
- [`getSignatureVariant()`](#getsignaturevariant)
|
|
29
|
-
- [`deleteSignatureVariant()`](#deletesignaturevariant)
|
|
30
|
-
- [`createFaceLivenessSession()`](#createfacelivenesssession)
|
|
31
|
-
- [`requestRevocation(params)`](#requestrevocationparams)
|
|
32
|
-
- [`getRevocationReasons()`](#getrevocationreasons)
|
|
33
11
|
- [Manejo de Errores](#manejo-de-errores)
|
|
34
|
-
- [`ApacuanaSuccess`](#apacuanasuccess)
|
|
35
|
-
- [`ApacuanaAPIError`](#apacuanaapierror)
|
|
36
|
-
- [Listado de Códigos de Error](#listado-de-códigos-de-error)
|
|
37
12
|
- [Licencia](#licencia)
|
|
38
13
|
|
|
39
14
|
## Instalación
|
|
40
|
-
|
|
41
15
|
```bash
|
|
42
16
|
npm install apacuana-sdk-core
|
|
43
17
|
```
|
|
44
18
|
|
|
45
19
|
## Inicialización
|
|
46
|
-
|
|
47
20
|
Antes de utilizar el SDK, debes inicializarlo con tu configuración.
|
|
48
21
|
|
|
49
22
|
```javascript
|
|
@@ -55,7 +28,7 @@ const config = {
|
|
|
55
28
|
apiKey: "tu-api-key",
|
|
56
29
|
verificationId: "tu-verification-id",
|
|
57
30
|
customerId: "tu-customer-id",
|
|
58
|
-
integrationType: "ONBOARDING", // o "
|
|
31
|
+
integrationType: "ONBOARDING", // o "onpremise"
|
|
59
32
|
};
|
|
60
33
|
|
|
61
34
|
try {
|
|
@@ -67,54 +40,45 @@ try {
|
|
|
67
40
|
```
|
|
68
41
|
|
|
69
42
|
## Conceptos Clave
|
|
70
|
-
|
|
71
43
|
### Tipos de Integración
|
|
72
|
-
|
|
73
44
|
El SDK soporta dos tipos de integración (`integrationType`) que determinan cómo se interactúa con la plataforma de Apacuana:
|
|
74
45
|
|
|
75
46
|
- **`ONBOARDING`**: En este modo, Apacuana gestiona la mayor parte del proceso, como el registro de usuarios y la generación de certificados. Es el modo recomendado y soportado para la mayoría de las integraciones.
|
|
76
|
-
|
|
47
|
+
|
|
48
|
+
- **`onpremise`**: Este modo de integración no está soportado actualmente y se reserva para uso futuro. La mayoría de las operaciones del SDK lanzarán un error `NOT_IMPLEMENTED` si se utiliza este tipo.
|
|
77
49
|
|
|
78
50
|
La elección del `integrationType` en la `init` es fundamental, ya que afecta a la disponibilidad y el comportamiento de muchos de los métodos del SDK.
|
|
79
51
|
|
|
80
52
|
## Interfaz Pública
|
|
81
|
-
|
|
82
53
|
Todas las funciones asíncronas devuelven una instancia de `ApacuanaSuccess` si tienen éxito, o lanzan una `ApacuanaAPIError` si fallan.
|
|
83
54
|
|
|
84
55
|
### `init(config)`
|
|
85
|
-
|
|
86
56
|
Inicializa el SDK.
|
|
87
57
|
|
|
88
|
-
-
|
|
58
|
+
- `config`: Objeto de configuración.
|
|
89
59
|
|
|
90
60
|
### `close()`
|
|
91
|
-
|
|
92
61
|
Cierra la sesión del SDK y limpia la configuración.
|
|
93
62
|
|
|
94
63
|
**Ejemplo:**
|
|
95
|
-
|
|
96
64
|
```javascript
|
|
97
65
|
apacuana.close();
|
|
98
66
|
console.log("Sesión del SDK cerrada.");
|
|
99
67
|
```
|
|
100
68
|
|
|
101
69
|
### `getConfig()`
|
|
102
|
-
|
|
103
70
|
Devuelve la configuración actual.
|
|
104
71
|
|
|
105
72
|
**Ejemplo:**
|
|
106
|
-
|
|
107
73
|
```javascript
|
|
108
74
|
const currentConfig = apacuana.getConfig();
|
|
109
75
|
console.log("Configuración actual:", currentConfig);
|
|
110
76
|
```
|
|
111
77
|
|
|
112
78
|
### `getCustomer()`
|
|
113
|
-
|
|
114
|
-
Obtiene los datos del cliente.
|
|
79
|
+
Obtiene los datos del cliente. Este método es el punto de entrada para iniciar una sesión y obtener el token y la información del usuario.
|
|
115
80
|
|
|
116
81
|
**Ejemplo:**
|
|
117
|
-
|
|
118
82
|
```javascript
|
|
119
83
|
try {
|
|
120
84
|
const response = await apacuana.getCustomer();
|
|
@@ -125,13 +89,12 @@ try {
|
|
|
125
89
|
```
|
|
126
90
|
|
|
127
91
|
### `generateCert(encryptedCSR)`
|
|
128
|
-
|
|
129
92
|
Genera un nuevo certificado digital.
|
|
130
93
|
|
|
131
|
-
-
|
|
94
|
+
- `encryptedCSR`: Objeto con la CSR encriptada.
|
|
95
|
+
- `csr` (String): El Certificate Signing Request encriptado.
|
|
132
96
|
|
|
133
97
|
**Ejemplo:**
|
|
134
|
-
|
|
135
98
|
```javascript
|
|
136
99
|
try {
|
|
137
100
|
const csr = { csr: "MIIC...==" }; // CSR en formato Base64
|
|
@@ -143,13 +106,11 @@ try {
|
|
|
143
106
|
```
|
|
144
107
|
|
|
145
108
|
### `getCertStatus(isCertificateInDevice)`
|
|
146
|
-
|
|
147
109
|
Obtiene el estado del certificado del usuario.
|
|
148
110
|
|
|
149
|
-
-
|
|
111
|
+
- `isCertificateInDevice` (Boolean): Indica si el certificado ya está almacenado localmente.
|
|
150
112
|
|
|
151
113
|
**Ejemplo:**
|
|
152
|
-
|
|
153
114
|
```javascript
|
|
154
115
|
try {
|
|
155
116
|
const response = await apacuana.getCertStatus(false);
|
|
@@ -160,11 +121,9 @@ try {
|
|
|
160
121
|
```
|
|
161
122
|
|
|
162
123
|
### `getCertTypes()`
|
|
163
|
-
|
|
164
124
|
Obtiene los tipos de certificados disponibles.
|
|
165
125
|
|
|
166
126
|
**Ejemplo:**
|
|
167
|
-
|
|
168
127
|
```javascript
|
|
169
128
|
try {
|
|
170
129
|
const response = await apacuana.getCertTypes();
|
|
@@ -175,13 +134,12 @@ try {
|
|
|
175
134
|
```
|
|
176
135
|
|
|
177
136
|
### `getRequerimentsByTypeUser(params)`
|
|
137
|
+
Obtiene los requisitos para un tipo de certificado y usuario.
|
|
178
138
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
- **`params`**: Objeto con la propiedad `type` (numérico).
|
|
139
|
+
- `params`: Objeto con los parámetros de la consulta.
|
|
140
|
+
- `type` (Number): El tipo de certificado.
|
|
182
141
|
|
|
183
142
|
**Ejemplo:**
|
|
184
|
-
|
|
185
143
|
```javascript
|
|
186
144
|
try {
|
|
187
145
|
const response = await apacuana.getRequerimentsByTypeUser({ type: 1 });
|
|
@@ -191,56 +149,77 @@ try {
|
|
|
191
149
|
}
|
|
192
150
|
```
|
|
193
151
|
|
|
194
|
-
### `requestCertificate(params)`
|
|
195
|
-
|
|
196
|
-
Solicita un certificado.
|
|
197
|
-
|
|
198
|
-
- **`params`**: Objeto con las propiedades `type` (numérico) y `documents` (array).
|
|
199
|
-
|
|
200
|
-
**Ejemplo:**
|
|
201
|
-
|
|
202
|
-
```javascript
|
|
203
|
-
try {
|
|
204
|
-
const params = { type: 1, documents: ["doc1.pdf", "doc2.pdf"] };
|
|
205
|
-
const response = await apacuana.requestCertificate(params);
|
|
206
|
-
console.log("Solicitud de certificado enviada:", response.data);
|
|
207
|
-
} catch (error) {
|
|
208
|
-
console.error("Error al solicitar el certificado:", error.message);
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
152
|
### `addSigner(signerData)`
|
|
213
153
|
|
|
214
|
-
Añade un firmante a un documento.
|
|
215
|
-
|
|
216
|
-
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
154
|
+
Añade un firmante a un documento. El comportamiento de esta función y sus campos obligatorios dependen del `integrationType` configurado durante la inicialización.
|
|
155
|
+
|
|
156
|
+
- **Para `integrationType: 'ONBOARDING'`**:
|
|
157
|
+
Esta integración requiere que el documento se envíe como un archivo (`File` object). La validación de los datos se realiza a través de un helper que exige los siguientes campos:
|
|
158
|
+
|
|
159
|
+
- **`signerData`**: Objeto con los datos del firmante y el documento.
|
|
160
|
+
- `name` (String, **obligatorio**): Nombre del documento.
|
|
161
|
+
- `document` (File, **obligatorio**): El archivo del documento a firmar (ej. un PDF). No se puede usar junto con `reference`.
|
|
162
|
+
- `reference` (String, **obligatorio**): Referencia única para un documento ya existente en la plataforma. No se puede usar junto con `document`.
|
|
163
|
+
- `typedoc` (String, **obligatorio**): Tipo de documento de identidad del firmante. Valores permitidos: `"V"`, `"P"`, `"E"`.
|
|
164
|
+
- `doc` (String, **obligatorio**): Número de documento de identidad del firmante.
|
|
165
|
+
- `signature` (Array, **obligatorio**): Un array de objetos que definen la posición de la firma. Debe contener al menos un objeto con:
|
|
166
|
+
- `page` (Number, **obligatorio**): Página donde se estampará la firma (entero positivo).
|
|
167
|
+
- `x` (Number, **obligatorio**): Coordenada X (de 0 a 1).
|
|
168
|
+
- `y` (Number, **obligatorio**): Coordenada Y (de 0 a 1).
|
|
169
|
+
|
|
170
|
+
**Ejemplo (`ONBOARDING`):**
|
|
171
|
+
```javascript
|
|
172
|
+
try {
|
|
173
|
+
// documentFile debe ser una instancia de File
|
|
174
|
+
const documentFile = new File(["contenido"], "contrato.pdf", { type: "application/pdf" });
|
|
175
|
+
|
|
176
|
+
const signer = {
|
|
177
|
+
name: "Contrato",
|
|
178
|
+
document: documentFile,
|
|
179
|
+
typedoc: "V",
|
|
180
|
+
doc: "12345678",
|
|
181
|
+
signature: [{ page: 1, x: 0.5, y: 0.5 }],
|
|
182
|
+
};
|
|
183
|
+
const response = await apacuana.addSigner(signer);
|
|
184
|
+
console.log("Firmante añadido:", response.data);
|
|
185
|
+
} catch (error) {
|
|
186
|
+
console.error("Error al añadir firmante:", error.message);
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
- **Para `integrationType: 'onpremise'`**:
|
|
191
|
+
En esta integración, el `signerData` se envía como un objeto JSON. El documento no se envía como un archivo. La validación es más flexible en el lado del cliente.
|
|
192
|
+
|
|
193
|
+
- **`signerData`**: Objeto con los datos del firmante.
|
|
194
|
+
- `name` (String): Nombre del documento.
|
|
195
|
+
- `reference` (String): Referencia única para el documento.
|
|
196
|
+
- `typedoc` (String): Tipo de documento de identidad del firmante.
|
|
197
|
+
- `doc` (String): Número de documento de identidad del firmante.
|
|
198
|
+
- `signature` (Array): Posición de la firma.
|
|
199
|
+
|
|
200
|
+
**Ejemplo (`onpremise`):**
|
|
201
|
+
```javascript
|
|
202
|
+
try {
|
|
203
|
+
const signer = {
|
|
204
|
+
name: "Contrato",
|
|
205
|
+
reference: "REF-001",
|
|
206
|
+
typedoc: "V",
|
|
207
|
+
doc: "12345678",
|
|
208
|
+
signature: [{ page: 1, x: 0.5, y: 0.5 }],
|
|
209
|
+
};
|
|
210
|
+
const response = await apacuana.addSigner(signer);
|
|
211
|
+
console.log("Firmante añadido:", response.data);
|
|
212
|
+
} catch (error) {
|
|
213
|
+
console.error("Error al añadir firmante:", error.message);
|
|
214
|
+
}
|
|
215
|
+
```
|
|
235
216
|
|
|
236
217
|
### `getDocs(data)`
|
|
237
|
-
|
|
238
218
|
Obtiene una lista paginada de documentos.
|
|
239
219
|
|
|
240
|
-
-
|
|
220
|
+
- `data`: Objeto con parámetros de paginación (`page`, `size`) y filtro (`status`).
|
|
241
221
|
|
|
242
222
|
**Ejemplo:**
|
|
243
|
-
|
|
244
223
|
```javascript
|
|
245
224
|
try {
|
|
246
225
|
const params = { page: 1, size: 10, status: 0 };
|
|
@@ -252,16 +231,19 @@ try {
|
|
|
252
231
|
```
|
|
253
232
|
|
|
254
233
|
### `getDigest(signData)`
|
|
234
|
+
Obtiene el digest de un documento para ser firmado. Un helper valida que se incluyan los siguientes campos obligatorios:
|
|
255
235
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
-
|
|
236
|
+
- **`signData`**: Objeto con los siguientes datos:
|
|
237
|
+
- `cert` (String, **obligatorio**): El certificado en formato Base64.
|
|
238
|
+
- `signatureId` (String, **obligatorio**): El ID de la firma que se está procesando.
|
|
259
239
|
|
|
260
240
|
**Ejemplo:**
|
|
261
|
-
|
|
262
241
|
```javascript
|
|
263
242
|
try {
|
|
264
|
-
const params = {
|
|
243
|
+
const params = {
|
|
244
|
+
cert: "MIIC...==", // Certificado en Base64
|
|
245
|
+
signatureId: "sig-123",
|
|
246
|
+
};
|
|
265
247
|
const response = await apacuana.getDigest(params);
|
|
266
248
|
console.log("Digest del documento:", response.data);
|
|
267
249
|
} catch (error) {
|
|
@@ -270,17 +252,24 @@ try {
|
|
|
270
252
|
```
|
|
271
253
|
|
|
272
254
|
### `signDocument(signData)`
|
|
255
|
+
Firma un documento utilizando el digest firmado. Un helper valida que se incluyan los siguientes campos obligatorios:
|
|
273
256
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
-
|
|
257
|
+
- **`signData`**: Objeto con los siguientes datos:
|
|
258
|
+
- `signature` (Object, **obligatorio**): Objeto que contiene el ID de la firma y las posiciones.
|
|
259
|
+
- `id` (String, **obligatorio**): El ID de la firma.
|
|
260
|
+
- `positions` (Array, **obligatorio**): Un array de objetos para ajustar la posición de la firma.
|
|
261
|
+
- `cert` (String, **obligatorio**): El certificado en formato Base64.
|
|
262
|
+
- `signedDigest` (String, **obligatorio**): El digest del documento ya firmado.
|
|
263
|
+
- `document` (File, opcional): El archivo del documento, si es necesario para la integración.
|
|
277
264
|
|
|
278
265
|
**Ejemplo:**
|
|
279
|
-
|
|
280
266
|
```javascript
|
|
281
267
|
try {
|
|
282
268
|
const params = {
|
|
283
|
-
signature: {
|
|
269
|
+
signature: {
|
|
270
|
+
id: "sig-123",
|
|
271
|
+
positions: [{ page: 1, x: 0.5, y: 0.5, status: 1 }]
|
|
272
|
+
},
|
|
284
273
|
cert: "MIIC...==",
|
|
285
274
|
signedDigest: "abc...",
|
|
286
275
|
};
|
|
@@ -292,13 +281,11 @@ try {
|
|
|
292
281
|
```
|
|
293
282
|
|
|
294
283
|
### `uploadSignatureVariant(data)`
|
|
295
|
-
|
|
296
284
|
Sube una imagen de firma.
|
|
297
285
|
|
|
298
|
-
-
|
|
286
|
+
- `data`: Objeto con la propiedad `file` (instancia de `File`, tipo `image/png`).
|
|
299
287
|
|
|
300
288
|
**Ejemplo:**
|
|
301
|
-
|
|
302
289
|
```javascript
|
|
303
290
|
// Este código se ejecutaría en un entorno de navegador
|
|
304
291
|
const imageFile = new File(["..."], "firma.png", { type: "image/png" });
|
|
@@ -311,11 +298,9 @@ try {
|
|
|
311
298
|
```
|
|
312
299
|
|
|
313
300
|
### `getSignatureVariant()`
|
|
314
|
-
|
|
315
301
|
Obtiene la imagen de la firma del usuario.
|
|
316
302
|
|
|
317
303
|
**Ejemplo:**
|
|
318
|
-
|
|
319
304
|
```javascript
|
|
320
305
|
try {
|
|
321
306
|
const response = await apacuana.getSignatureVariant();
|
|
@@ -327,11 +312,9 @@ try {
|
|
|
327
312
|
```
|
|
328
313
|
|
|
329
314
|
### `deleteSignatureVariant()`
|
|
330
|
-
|
|
331
315
|
Elimina la imagen de la firma del usuario.
|
|
332
316
|
|
|
333
317
|
**Ejemplo:**
|
|
334
|
-
|
|
335
318
|
```javascript
|
|
336
319
|
try {
|
|
337
320
|
const response = await apacuana.deleteSignatureVariant();
|
|
@@ -342,11 +325,9 @@ try {
|
|
|
342
325
|
```
|
|
343
326
|
|
|
344
327
|
### `createFaceLivenessSession()`
|
|
345
|
-
|
|
346
328
|
Crea una sesión de prueba de vida.
|
|
347
329
|
|
|
348
330
|
**Ejemplo:**
|
|
349
|
-
|
|
350
331
|
```javascript
|
|
351
332
|
try {
|
|
352
333
|
const response = await apacuana.createFaceLivenessSession();
|
|
@@ -356,14 +337,27 @@ try {
|
|
|
356
337
|
}
|
|
357
338
|
```
|
|
358
339
|
|
|
359
|
-
### `
|
|
340
|
+
### `validateFaceLiveness({ sessionId })`
|
|
341
|
+
Valida el resultado de una sesión de prueba de vida.
|
|
342
|
+
|
|
343
|
+
- `sessionId` (String, **obligatorio**): El ID de la sesión de prueba de vida que se va a validar.
|
|
344
|
+
|
|
345
|
+
**Ejemplo:**
|
|
346
|
+
```javascript
|
|
347
|
+
try {
|
|
348
|
+
const response = await apacuana.validateFaceLiveness({ sessionId: "your-session-id" });
|
|
349
|
+
console.log("Resultado de la validación:", response.data);
|
|
350
|
+
} catch (error) {
|
|
351
|
+
console.error("Error al validar la sesión de prueba de vida:", error.message);
|
|
352
|
+
}
|
|
353
|
+
```
|
|
360
354
|
|
|
355
|
+
### `requestRevocation(params)`
|
|
361
356
|
Solicita la revocación de un certificado.
|
|
362
357
|
|
|
363
|
-
-
|
|
358
|
+
- `params`: Objeto con la propiedad `reasonCode` (numérico).
|
|
364
359
|
|
|
365
360
|
**Ejemplo:**
|
|
366
|
-
|
|
367
361
|
```javascript
|
|
368
362
|
try {
|
|
369
363
|
const response = await apacuana.requestRevocation({ reasonCode: 1 });
|
|
@@ -374,11 +368,9 @@ try {
|
|
|
374
368
|
```
|
|
375
369
|
|
|
376
370
|
### `getRevocationReasons()`
|
|
377
|
-
|
|
378
371
|
Obtiene la lista de razones para la revocación.
|
|
379
372
|
|
|
380
373
|
**Ejemplo:**
|
|
381
|
-
|
|
382
374
|
```javascript
|
|
383
375
|
try {
|
|
384
376
|
const response = await apacuana.getRevocationReasons();
|
|
@@ -389,51 +381,30 @@ try {
|
|
|
389
381
|
```
|
|
390
382
|
|
|
391
383
|
## Manejo de Errores
|
|
392
|
-
|
|
393
|
-
El SDK utiliza dos clases personalizadas para gestionar los resultados de las operaciones asíncronas: `ApacuanaSuccess` para éxitos y `ApacuanaAPIError` para fallos.
|
|
384
|
+
El SDK utiliza dos clases personalizadas para gestionar los resultados: `ApacuanaSuccess` para éxitos y `ApacuanaAPIError` para fallos.
|
|
394
385
|
|
|
395
386
|
### `ApacuanaSuccess`
|
|
396
|
-
|
|
397
|
-
Cuando una operación se completa correctamente, la promesa se resuelve con una instancia de `ApacuanaSuccess`. Esta clase encapsula la respuesta de la API y proporciona una estructura consistente para los datos devueltos.
|
|
387
|
+
Cuando una operación se completa correctamente, la promesa se resuelve con una instancia de `ApacuanaSuccess`.
|
|
398
388
|
|
|
399
389
|
**Propiedades:**
|
|
400
|
-
|
|
401
390
|
- `success` (Boolean): Siempre `true`.
|
|
402
391
|
- `statusCode` (Number): El código de estado HTTP de la respuesta (ej. `200`).
|
|
403
392
|
- `data` (Object): El cuerpo de la respuesta de la API.
|
|
404
393
|
|
|
405
|
-
**Ejemplo de uso:**
|
|
406
|
-
|
|
407
|
-
```javascript
|
|
408
|
-
try {
|
|
409
|
-
// getCertTypes devuelve una instancia de ApacuanaSuccess
|
|
410
|
-
const response = await apacuana.getCertTypes();
|
|
411
|
-
|
|
412
|
-
console.log("La operación fue exitosa:", response.success); // true
|
|
413
|
-
console.log("Tipos de certificados:", response.data);
|
|
414
|
-
} catch (error) {
|
|
415
|
-
// Manejo de errores (ver abajo)
|
|
416
|
-
console.error(error);
|
|
417
|
-
}
|
|
418
|
-
```
|
|
419
|
-
|
|
420
394
|
### `ApacuanaAPIError`
|
|
421
|
-
|
|
422
|
-
Cuando la API devuelve un error o ocurre un problema durante la solicitud, la promesa es rechazada con una instancia de `ApacuanaAPIError`. Esta clase extiende el `Error` nativo de JavaScript y añade información contextual sobre el fallo.
|
|
395
|
+
Cuando la API devuelve un error, la promesa es rechazada con una instancia de `ApacuanaAPIError`.
|
|
423
396
|
|
|
424
397
|
**Propiedades:**
|
|
425
|
-
|
|
426
398
|
- `success` (Boolean): Siempre `false`.
|
|
427
399
|
- `statusCode` (Number): El código de estado HTTP del error (ej. `400`, `404`, `500`).
|
|
428
|
-
- `errorCode` (String): Un código de error específico de Apacuana (ej. `INVALID_PARAMS
|
|
400
|
+
- `errorCode` (String): Un código de error específico de Apacuana (ej. `INVALID_PARAMS`).
|
|
429
401
|
- `message` (String): Una descripción legible del error.
|
|
430
402
|
|
|
431
403
|
**Ejemplo de manejo de errores:**
|
|
432
|
-
|
|
433
404
|
```javascript
|
|
434
405
|
try {
|
|
435
|
-
// Forzamos un error
|
|
436
|
-
await apacuana.
|
|
406
|
+
// Forzamos un error
|
|
407
|
+
await apacuana.addSigner({ doc: null });
|
|
437
408
|
} catch (error) {
|
|
438
409
|
if (error.name === "ApacuanaAPIError") {
|
|
439
410
|
console.error("Ocurrió un error de la API de Apacuana:");
|
|
@@ -441,7 +412,6 @@ try {
|
|
|
441
412
|
console.error("- Código de estado HTTP:", error.statusCode);
|
|
442
413
|
console.error("- Código de error interno:", error.errorCode);
|
|
443
414
|
} else {
|
|
444
|
-
// Captura de otros errores inesperados (ej. problemas de red)
|
|
445
415
|
console.error("Ocurrió un error inesperado:", error);
|
|
446
416
|
}
|
|
447
417
|
}
|
|
@@ -449,22 +419,19 @@ try {
|
|
|
449
419
|
|
|
450
420
|
### Listado de Códigos de Error
|
|
451
421
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
| `
|
|
455
|
-
|
|
|
456
|
-
| `
|
|
457
|
-
| `
|
|
458
|
-
| `
|
|
459
|
-
| `
|
|
460
|
-
| `
|
|
461
|
-
| `
|
|
462
|
-
| `
|
|
463
|
-
| `
|
|
464
|
-
| `
|
|
465
|
-
| `UNKNOWN_REQUEST_ERROR` | Error desconocido durante la petición. |
|
|
466
|
-
| `API_RESPONSE_ERROR` | La respuesta de la API contiene un error. |
|
|
422
|
+
| `errorCode` | Descripción |
|
|
423
|
+
| :--- | :--- |
|
|
424
|
+
| `CONFIGURATION_ERROR` | Error en la configuración del SDK (ej. falta `apiKey`). |
|
|
425
|
+
| `INVALID_API_RESPONSE` | La respuesta de la API no tiene el formato esperado. |
|
|
426
|
+
| `INVALID_PARAMETER` | Uno o más parámetros de la función son inválidos. |
|
|
427
|
+
| `INVALID_PARAMETER_FORMAT` | El formato de un parámetro es incorrecto. |
|
|
428
|
+
| `LOGICAL_API_ERROR` | Error lógico devuelto por la API. |
|
|
429
|
+
| `NETWORK_ERROR` | Error de red, CORS o timeout. |
|
|
430
|
+
| `NOT_IMPLEMENTED` | La funcionalidad no está implementada para el `integrationType` actual. |
|
|
431
|
+
| `UNSUPPORTED_HTTP_METHOD` | Se utilizó un método HTTP no soportado. |
|
|
432
|
+
| `UNSUPPORTED_INTEGRATION_TYPE` | El `integrationType` no es válido. |
|
|
433
|
+
| `UNKNOWN_REQUEST_ERROR` | Error desconocido durante la petición. |
|
|
434
|
+
| `API_RESPONSE_ERROR` | La respuesta de la API contiene un error. |
|
|
467
435
|
|
|
468
436
|
## Licencia
|
|
469
|
-
|
|
470
437
|
Este SDK está distribuido bajo una licencia propietaria. Para más detalles, contacte con el equipo de Apacuana.
|