@veriko-mx/sdk 0.4.7 → 0.4.8
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/CHANGELOG.md +8 -0
- package/README.md +5 -5
- package/dist/cjs/client.d.ts +1 -1
- package/dist/cjs/client.js +1 -1
- package/dist/cjs/generated/openapi.d.ts +46 -17
- package/dist/cjs/generated/openapi.d.ts.map +1 -1
- package/dist/cjs/resources.d.ts +7 -6
- package/dist/cjs/resources.d.ts.map +1 -1
- package/dist/cjs/resources.js +11 -9
- package/dist/cjs/resources.js.map +1 -1
- package/dist/cjs/types.d.ts +6 -5
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/client.d.ts +1 -1
- package/dist/esm/client.js +1 -1
- package/dist/esm/generated/openapi.d.ts +46 -17
- package/dist/esm/generated/openapi.d.ts.map +1 -1
- package/dist/esm/resources.d.ts +7 -6
- package/dist/esm/resources.d.ts.map +1 -1
- package/dist/esm/resources.js +11 -9
- package/dist/esm/resources.js.map +1 -1
- package/dist/esm/types.d.ts +6 -5
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,14 @@ versiones según [SemVer](https://semver.org/lang/es/).
|
|
|
7
7
|
|
|
8
8
|
Sin cambios todavía.
|
|
9
9
|
|
|
10
|
+
## [0.4.8] — 2026-09-27
|
|
11
|
+
|
|
12
|
+
### Cambiado
|
|
13
|
+
|
|
14
|
+
- `validations.validateOcr()` y `validations.enqueueOcr()` documentan el comprobante en PDF, de 1 a
|
|
15
|
+
3 páginas.
|
|
16
|
+
- `validations.image()` acepta un comprobante en PDF y lo nombra con la extensión `.pdf`.
|
|
17
|
+
|
|
10
18
|
## [0.4.7] — 2026-09-26
|
|
11
19
|
|
|
12
20
|
### Añadido
|
package/README.md
CHANGED
|
@@ -128,7 +128,7 @@ conserva el suyo (`banxico_status`, `processing_time_ms`), porque es el tipo gen
|
|
|
128
128
|
|
|
129
129
|
Cada llamada consume cuota del plan, y se descuenta al aceptar la petición.
|
|
130
130
|
|
|
131
|
-
### Desde
|
|
131
|
+
### Desde el comprobante
|
|
132
132
|
|
|
133
133
|
```ts
|
|
134
134
|
const validation = await client.validations.validateOcr({
|
|
@@ -137,11 +137,11 @@ const validation = await client.validations.validateOcr({
|
|
|
137
137
|
});
|
|
138
138
|
```
|
|
139
139
|
|
|
140
|
-
El SDK lee el archivo y lo codifica en base64. `imageUrl` recibe
|
|
141
|
-
si se envían `image` e `imageUrl`, la API sólo considera `image`. Formatos: JPEG, PNG
|
|
142
|
-
hasta 12 MB.
|
|
140
|
+
El SDK lee el archivo y lo codifica en base64. `imageUrl` recibe un comprobante ya publicado en
|
|
141
|
+
HTTPS, y si se envían `image` e `imageUrl`, la API sólo considera `image`. Formatos: JPEG, PNG, WebP
|
|
142
|
+
o PDF de 1 a 3 páginas, de hasta 12 MB.
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
El comprobante de una validación por OCR se descarga con `client.validations.image(id)`.
|
|
145
145
|
|
|
146
146
|
### Sin esperar al veredicto
|
|
147
147
|
|
package/dist/cjs/client.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare const DEFAULT_TIMEOUT_MS = 30000;
|
|
|
7
7
|
export declare const API_KEY_ENV_VAR = "VERIKO_API_KEY";
|
|
8
8
|
export declare const BASE_URL_ENV_VAR = "VERIKO_BASE_URL";
|
|
9
9
|
/** La versión que viaja en el `User-Agent`. `test/client.test.ts` la compara con `package.json`. */
|
|
10
|
-
export declare const VERSION = "0.4.
|
|
10
|
+
export declare const VERSION = "0.4.8";
|
|
11
11
|
export interface VerikoOptions {
|
|
12
12
|
/** La clave de API. Por omisión, `VERIKO_API_KEY`. */
|
|
13
13
|
apiKey?: string;
|
package/dist/cjs/client.js
CHANGED
|
@@ -9,7 +9,7 @@ exports.DEFAULT_TIMEOUT_MS = 30_000;
|
|
|
9
9
|
exports.API_KEY_ENV_VAR = 'VERIKO_API_KEY';
|
|
10
10
|
exports.BASE_URL_ENV_VAR = 'VERIKO_BASE_URL';
|
|
11
11
|
/** La versión que viaja en el `User-Agent`. `test/client.test.ts` la compara con `package.json`. */
|
|
12
|
-
exports.VERSION = '0.4.
|
|
12
|
+
exports.VERSION = '0.4.8';
|
|
13
13
|
/**
|
|
14
14
|
* Cliente de la API de Veriko.
|
|
15
15
|
*
|
|
@@ -117,9 +117,19 @@ export interface paths {
|
|
|
117
117
|
put?: never;
|
|
118
118
|
/**
|
|
119
119
|
* Validar una transferencia SPEI (OCR)
|
|
120
|
-
* @description Valida una transferencia SPEI a partir de
|
|
120
|
+
* @description Valida una transferencia SPEI a partir de su comprobante, en imagen o en PDF. Extrae mediante reconocimiento óptico (OCR) los datos del comprobante y los valida en **Banxico** para obtener el CEP de la transacción.
|
|
121
121
|
*
|
|
122
|
-
*
|
|
122
|
+
* El comprobante se envía como `image` o `image_url`. Si es enviado mediante una URL, el host destino deberá contar con protocolo seguro (SSL/HTTPS).
|
|
123
|
+
*
|
|
124
|
+
* {% callout type="info" %}
|
|
125
|
+
* **Comprobante en PDF:**\
|
|
126
|
+
* Se acepta un PDF de 1 a 3 páginas, con el mismo máximo de `12 MB` que una imagen.
|
|
127
|
+
* Se rechaza si está cifrado, si se modificó después de emitirse o si trae contenido activo u oculto.\
|
|
128
|
+
* Si el PDF es el CEP de Banxico, sus datos se leen de su texto sin OCR y `banxico_result._cep_upload` indica
|
|
129
|
+
* si su sello y su cadena original coinciden con los del CEP oficial. El veredicto no cambia por esa comparación.\
|
|
130
|
+
* Un PDF con más de un comprobante se rechaza con `pdf_multiple_receipts`.
|
|
131
|
+
*
|
|
132
|
+
* {% /callout %}
|
|
123
133
|
*
|
|
124
134
|
* {% callout type="info" %}
|
|
125
135
|
* El campo `cuenta_beneficiaria` permite enviar explícitamente la cuenta receptora de la transferencia, enviarlo es especialmente útil cuando la imagen no lleva este dato o lo lleva incompleto.\
|
|
@@ -137,7 +147,7 @@ export interface paths {
|
|
|
137
147
|
*
|
|
138
148
|
* {% callout type="info" %}
|
|
139
149
|
* **Modo asíncrono:**\
|
|
140
|
-
* Enviando `?async=1` en la URL,
|
|
150
|
+
* Enviando `?async=1` en la URL, el comprobante se comprueba antes de aceptar el trabajo y la respuesta es un estado HTTP `202` inmediato con el ID de la validación en el cuerpo.\
|
|
141
151
|
* \
|
|
142
152
|
* El veredicto se recoge sondeando `GET /v1/validations/{id}` hasta un estado terminal, como describe {% concept slug="async-validations" %}las operaciones asíncronas{% /concept %}.
|
|
143
153
|
*
|
|
@@ -153,10 +163,12 @@ export interface paths {
|
|
|
153
163
|
*
|
|
154
164
|
* {% callout type="warning" %}
|
|
155
165
|
* **Políticas de cobro (cuota):**\
|
|
156
|
-
* — Modo síncrono: Se descuenta la validación de la cuota al aceptar la petición, antes de comprobar
|
|
157
|
-
* — Modo asíncrono:
|
|
166
|
+
* — Modo síncrono: Se descuenta la validación de la cuota al aceptar la petición, antes de comprobar el archivo. Es decir, un archivo inválido consume una validación.\
|
|
167
|
+
* — Modo asíncrono: El archivo se comprueba primero, así que un archivo inválido no consume nada.\
|
|
168
|
+
* \
|
|
169
|
+
* Un CEP en PDF que se lee sin OCR cuenta como una validación, igual que uno leído por OCR.\
|
|
158
170
|
* \
|
|
159
|
-
* La cuota
|
|
171
|
+
* La cuota sólo se devuelve cuando la validación termina en `error` por un fallo de la plataforma. Los reintentos automáticos posteriores no consumen una validación adicional, y el cómputo está en {% concept slug="quotas-and-plans" %}cuotas y planes{% /concept %}.
|
|
160
172
|
*
|
|
161
173
|
* {% /callout %}
|
|
162
174
|
*/
|
|
@@ -343,7 +355,11 @@ export interface paths {
|
|
|
343
355
|
};
|
|
344
356
|
/**
|
|
345
357
|
* Obtener la imagen del comprobante
|
|
346
|
-
* @description Devuelve
|
|
358
|
+
* @description Devuelve el comprobante conservado de una validación por OCR, con caché privada:
|
|
359
|
+
*
|
|
360
|
+
* - Imagen: se entrega con disposición `inline`.
|
|
361
|
+
* - PDF: se entrega siempre como adjunto (`attachment`) y con `Content-Security-Policy: sandbox`,
|
|
362
|
+
* para que un navegador no lo abra dentro del propio origen.
|
|
347
363
|
*
|
|
348
364
|
* Si la validación no tiene imagen disponible, responde con un estado HTTP `404` (con `image_not_available` en el cuerpo).
|
|
349
365
|
*/
|
|
@@ -2339,11 +2355,16 @@ export interface components {
|
|
|
2339
2355
|
*/
|
|
2340
2356
|
etag_version?: number | null;
|
|
2341
2357
|
/**
|
|
2342
|
-
* @description Referencia relativa
|
|
2358
|
+
* @description Referencia relativa del comprobante, imagen o PDF (solo si `validation_type` es del tipo `ocr`).
|
|
2343
2359
|
* @example ocr/2026/04/a1b2c3d4.jpg
|
|
2344
2360
|
*/
|
|
2345
2361
|
image_path?: string | null;
|
|
2346
|
-
/**
|
|
2362
|
+
/**
|
|
2363
|
+
* @description Campos extraídos del comprobante (solo si `validation_type` es del tipo `ocr`).
|
|
2364
|
+
*
|
|
2365
|
+
* `extraction_source` vale `cep_pdf` cuando el comprobante era el CEP de Banxico en PDF y sus datos se leyeron
|
|
2366
|
+
* de su texto, sin OCR. `comprobantes_detectados` es el número de comprobantes que se encontraron en un PDF.
|
|
2367
|
+
*/
|
|
2347
2368
|
ocr_result?: {
|
|
2348
2369
|
[key: string]: unknown;
|
|
2349
2370
|
} | null;
|
|
@@ -2365,11 +2386,16 @@ export interface components {
|
|
|
2365
2386
|
* @description Datos devueltos por Banxico. Las propiedades tipadas abajo son las 20 que declara el esquema oficial del complemento SPEI.
|
|
2366
2387
|
*
|
|
2367
2388
|
* `_ocr_correction` conserva los campos corregidos, su lectura original (`requested`), el valor consultado (`used`) y la confirmación (`confirmed_by`). `status_query` indica una hipótesis confirmada por la consulta de estado; `cep` indica que también se obtuvo el comprobante. La consulta de estado por sí sola no verifica una transferencia.
|
|
2389
|
+
*
|
|
2390
|
+
* `_cep_upload` aparece cuando el comprobante subido era el CEP en PDF y Banxico confirmó el pago.
|
|
2391
|
+
* `authenticated` es `true` cuando su sello y su cadena original coinciden con los del CEP oficial;
|
|
2392
|
+
* con `false`, `differing_fields` lista los campos que difieren y `normalization_warnings` lo avisa.
|
|
2393
|
+
* El veredicto sigue siendo el de Banxico.
|
|
2368
2394
|
*/
|
|
2369
2395
|
banxico_result?: ({
|
|
2370
2396
|
/**
|
|
2371
|
-
* @description Fecha de la operación tal como la reporta el CEP de Banxico (`
|
|
2372
|
-
* @example
|
|
2397
|
+
* @description Fecha de la operación tal como la reporta el CEP de Banxico (`AAAA-MM-DD`).
|
|
2398
|
+
* @example 2025-03-15
|
|
2373
2399
|
*/
|
|
2374
2400
|
operationDate?: string;
|
|
2375
2401
|
/**
|
|
@@ -2530,17 +2556,17 @@ export interface components {
|
|
|
2530
2556
|
playground?: boolean;
|
|
2531
2557
|
};
|
|
2532
2558
|
};
|
|
2533
|
-
/** @description Cuerpo de `POST /v1/validate-ocr` con
|
|
2559
|
+
/** @description Cuerpo de `POST /v1/validate-ocr` con el comprobante en `image` o `image_url`; exige al menos uno de ambos campos. */
|
|
2534
2560
|
OcrValidationRequest: {
|
|
2535
2561
|
/**
|
|
2536
2562
|
* Format: byte
|
|
2537
|
-
* @description
|
|
2563
|
+
* @description Comprobante codificado en base64, en imagen o en PDF. Si también se proporciona `image_url`, solo se considera `image`. Formatos aceptados: JPEG, PNG, WebP o PDF de 1 a 3 páginas. Tamaño máximo: `12 MB`. Dimensiones máximas de una imagen: `12000px` por lado. Admite el prefijo `data:image/...;base64,` o `data:application/pdf;base64,`.
|
|
2538
2564
|
* @example iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==
|
|
2539
2565
|
*/
|
|
2540
2566
|
image?: string;
|
|
2541
2567
|
/**
|
|
2542
2568
|
* Format: uri
|
|
2543
|
-
* @description URL pública (HTTPS)
|
|
2569
|
+
* @description URL pública (HTTPS) del comprobante. Sigue los mismos límites de formato y tamaño que `image`: JPEG, PNG, WebP o PDF de 1 a 3 páginas, con un máximo de `12 MB`.
|
|
2544
2570
|
* @example https://storage.example.com/receipts/comprobante-2025-03.jpg
|
|
2545
2571
|
*/
|
|
2546
2572
|
image_url?: string;
|
|
@@ -5371,7 +5397,7 @@ export interface operations {
|
|
|
5371
5397
|
401: components["responses"]["Unauthorized"];
|
|
5372
5398
|
409: components["responses"]["IdempotencyKeyInProgress"];
|
|
5373
5399
|
413: components["responses"]["PayloadTooLarge"];
|
|
5374
|
-
/** @description La imagen o los datos de la petición no son válidos. Códigos posibles: `image_or_image_url_required`, `invalid_image`, `invalid_image_format`, `image_too_large`, `invalid_url`, `invalid_url_scheme`, `url_ssrf_blocked`, `invalid_clabe_checksum`. También puede devolver: `image_too_small`, `image_mime_mismatch`, `image_dimensions_too_large`, `image_decompression_bomb`, `image_polyglot_detected`, `image_url_unreachable`, `image_url_too_large`, `image_url_too_many_redirects`. En modo asíncrono, un fallo genérico de la imagen se reporta como `image_invalid`. Reutilizar `Idempotency-Key` con un cuerpo distinto produce `idempotency_key_reused`. */
|
|
5400
|
+
/** @description La imagen o los datos de la petición no son válidos. Códigos posibles: `image_or_image_url_required`, `invalid_image`, `invalid_image_format`, `image_too_large`, `invalid_url`, `invalid_url_scheme`, `url_ssrf_blocked`, `invalid_clabe_checksum`. También puede devolver: `image_too_small`, `image_mime_mismatch`, `image_dimensions_too_large`, `image_decompression_bomb`, `image_polyglot_detected`, `image_url_unreachable`, `image_url_too_large`, `image_url_too_many_redirects`. Con un PDF: `pdf_invalid_structure`, `pdf_encrypted`, `pdf_active_content`, `pdf_hidden_content`, `pdf_modified_after_issue`, `pdf_too_many_pages`, `pdf_unsupported_image`, `pdf_text_layer_too_large` y `pdf_multiple_receipts`. En modo asíncrono, un fallo genérico de la imagen se reporta como `image_invalid`. Reutilizar `Idempotency-Key` con un cuerpo distinto produce `idempotency_key_reused`. */
|
|
5375
5401
|
422: {
|
|
5376
5402
|
headers: {
|
|
5377
5403
|
[name: string]: unknown;
|
|
@@ -5946,15 +5972,17 @@ export interface operations {
|
|
|
5946
5972
|
};
|
|
5947
5973
|
requestBody?: never;
|
|
5948
5974
|
responses: {
|
|
5949
|
-
/** @description
|
|
5975
|
+
/** @description Comprobante. `Content-Type` indica `image/png`, `image/jpeg`, `image/webp` o `application/pdf` según el formato; cualquier otro contenido se entrega como `application/octet-stream`. */
|
|
5950
5976
|
200: {
|
|
5951
5977
|
headers: {
|
|
5952
|
-
/** @description
|
|
5978
|
+
/** @description `inline` para una imagen y `attachment` para un PDF, con un nombre derivado del identificador de la validación y la extensión del formato. */
|
|
5953
5979
|
"Content-Disposition"?: string;
|
|
5954
5980
|
/** @description Permite un caché privado durante 1 hora. */
|
|
5955
5981
|
"Cache-Control"?: string;
|
|
5956
5982
|
/** @description Restringe el uso del recurso al mismo origen. */
|
|
5957
5983
|
"Cross-Origin-Resource-Policy"?: string;
|
|
5984
|
+
/** @description Sólo con un PDF. `sandbox` impide ejecutar scripts y trata el documento como de otro origen si un visor lo abre. */
|
|
5985
|
+
"Content-Security-Policy"?: string;
|
|
5958
5986
|
/** @description Impide que el navegador deduzca un tipo de contenido distinto. */
|
|
5959
5987
|
"X-Content-Type-Options"?: string;
|
|
5960
5988
|
[name: string]: unknown;
|
|
@@ -5963,6 +5991,7 @@ export interface operations {
|
|
|
5963
5991
|
"image/png": string;
|
|
5964
5992
|
"image/jpeg": string;
|
|
5965
5993
|
"image/webp": string;
|
|
5994
|
+
"application/pdf": string;
|
|
5966
5995
|
"application/octet-stream": string;
|
|
5967
5996
|
};
|
|
5968
5997
|
};
|