@veriko-mx/sdk 0.4.4 → 0.4.5
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 +9 -70
- package/README.md +20 -29
- package/dist/cjs/client.d.ts +1 -1
- package/dist/cjs/client.js +1 -1
- package/dist/cjs/generated/openapi.d.ts +39 -37
- package/dist/cjs/generated/openapi.d.ts.map +1 -1
- package/dist/cjs/resources.d.ts +2 -2
- package/dist/cjs/resources.js +2 -2
- package/dist/cjs/types.d.ts +3 -3
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +3 -3
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/webhooks.d.ts +2 -2
- package/dist/cjs/webhooks.d.ts.map +1 -1
- package/dist/cjs/webhooks.js +2 -2
- package/dist/cjs/webhooks.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 +39 -37
- package/dist/esm/generated/openapi.d.ts.map +1 -1
- package/dist/esm/resources.d.ts +2 -2
- package/dist/esm/resources.js +2 -2
- package/dist/esm/types.d.ts +3 -3
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +3 -3
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/webhooks.d.ts +2 -2
- package/dist/esm/webhooks.d.ts.map +1 -1
- package/dist/esm/webhooks.js +2 -2
- package/dist/esm/webhooks.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,45 +7,17 @@ versiones según [SemVer](https://semver.org/lang/es/).
|
|
|
7
7
|
|
|
8
8
|
Sin cambios todavía.
|
|
9
9
|
|
|
10
|
-
## [0.4.
|
|
11
|
-
|
|
12
|
-
Sin cambios de superficie. Primera versión publicada por el Trusted Publisher, y
|
|
13
|
-
por tanto la primera con sello de procedencia: la ficha de npm deja de atribuir la
|
|
14
|
-
publicación a una cuenta personal y pasa a atribuirla al repositorio.
|
|
15
|
-
|
|
16
|
-
El camino con token que `0.4.3` necesitó para crear el paquete se retira. El CI
|
|
17
|
-
gana un candado que se pone en rojo si el secreto `NPM_TOKEN` sigue existiendo: un
|
|
18
|
-
token con escritura sobre el scope que ya nadie usa sólo puede filtrarse.
|
|
19
|
-
|
|
20
|
-
## [0.4.3] — 2026-09-20
|
|
10
|
+
## [0.4.5] — 2026-09-22
|
|
21
11
|
|
|
22
|
-
Sin cambios
|
|
12
|
+
Sin cambios en la API. Actualiza documentación y metadatos.
|
|
23
13
|
|
|
24
|
-
|
|
25
|
-
paquete no existe porque `0.3.1` se retiró. El workflow gana un camino de
|
|
26
|
-
arranque: si está el secreto `NPM_TOKEN` publica con él; si no está, borra la
|
|
27
|
-
línea de credencial y publica por OIDC, que es la vía definitiva. Retirar el
|
|
28
|
-
secreto devuelve el workflow al OIDC sin tocar el archivo.
|
|
29
|
-
|
|
30
|
-
`0.4.0`, `0.4.1` y `0.4.2` siguen libres en npm —nunca llegaron al registro, así
|
|
31
|
-
que no hay nada que reutilizar—, pero sus tags ya apuntan a commits sin el camino
|
|
32
|
-
de arranque y no se mueven. La única versión quemada es `0.3.1`, que sí estuvo
|
|
33
|
-
viva y se retiró.
|
|
34
|
-
|
|
35
|
-
## [0.4.2] — 2026-09-19
|
|
14
|
+
## [0.4.4] — 2026-09-20
|
|
36
15
|
|
|
37
|
-
|
|
38
|
-
`404` en el `PUT`, porque la identidad que publica no tenía escritura sobre el
|
|
39
|
-
scope. La entrada original decía que era «la primera versión disponible
|
|
40
|
-
públicamente en npm»; se corrigió el 2026-09-20, porque nunca lo fue.
|
|
16
|
+
Sin cambios de superficie.
|
|
41
17
|
|
|
42
|
-
## [0.4.
|
|
18
|
+
## [0.4.3] — 2026-09-20
|
|
43
19
|
|
|
44
|
-
|
|
45
|
-
ruta del tarball que impidió que aquel workflow alcanzara el registro. **Tampoco
|
|
46
|
-
llegó a npm**, por el mismo `404` que `0.4.2`; la entrada decía que se había
|
|
47
|
-
despublicado, y no fue así — corregido el 2026-09-20. La única versión que llegó
|
|
48
|
-
a estar viva fue `0.3.1`.
|
|
20
|
+
Sin cambios de superficie.
|
|
49
21
|
|
|
50
22
|
## [0.4.0] — 2026-09-19
|
|
51
23
|
|
|
@@ -54,9 +26,8 @@ a estar viva fue `0.3.1`.
|
|
|
54
26
|
- Las 18 operaciones M2M que faltaban: perfil y política de reintentos de cuenta,
|
|
55
27
|
resumen del panel, planes públicos, insights, finanzas y suscripción. Los planes
|
|
56
28
|
públicos se solicitan sin cabecera `Authorization`.
|
|
57
|
-
-
|
|
58
|
-
ejercita rutas contra grabaciones sanitizadas en un servidor HTTP local
|
|
59
|
-
mutaciones de alta, baja y `known_gaps`.
|
|
29
|
+
- La prueba de superficie compara las 66 operaciones completas del spec público y
|
|
30
|
+
ejercita rutas contra grabaciones sanitizadas en un servidor HTTP local.
|
|
60
31
|
|
|
61
32
|
### Cambiado
|
|
62
33
|
|
|
@@ -64,18 +35,6 @@ a estar viva fue `0.3.1`.
|
|
|
64
35
|
pública. En `0.x` esta retirada es incompatible.
|
|
65
36
|
- Los reportes mensuales, por contraparte, por banco y contables usan `csv` por
|
|
66
37
|
omisión, igual que el contrato público. `preview` se solicita explícitamente.
|
|
67
|
-
- La publicación no se considera exitosa hasta que npm devuelve la versión sin
|
|
68
|
-
credenciales. Esto evita repetir el falso positivo de `0.3.1`, que quedó con
|
|
69
|
-
acceso restringido aunque el workflow terminara en verde.
|
|
70
|
-
|
|
71
|
-
## [0.3.1] — 2026-09-19
|
|
72
|
-
|
|
73
|
-
Primer intento de publicación en npm como `@veriko-mx/sdk`. No cambia la
|
|
74
|
-
superficie del SDK respecto de `0.3.0`; el paquete quedó con acceso restringido
|
|
75
|
-
y no llegó a estar disponible públicamente.
|
|
76
|
-
|
|
77
|
-
Los cambios del producto se documentan en el
|
|
78
|
-
[changelog de la API](https://docs.veriko.mx/es/changelog).
|
|
79
38
|
|
|
80
39
|
## [0.3.0] — 2026-09-18
|
|
81
40
|
|
|
@@ -130,7 +89,7 @@ y `catalog`.
|
|
|
130
89
|
- Los tipos de las respuestas y de los argumentos de las tres familias, tomados
|
|
131
90
|
del spec, y `operations` reexportado junto a `components` y `paths`.
|
|
132
91
|
- `OcrValidationRequest`, escrito a mano por el mismo `anyOf` que afecta a
|
|
133
|
-
`ValidationRequest`, con su
|
|
92
|
+
`ValidationRequest`, con su prueba en `test/spec.test.ts`.
|
|
134
93
|
- `test/operations.test.ts`: contrasta cada operación con el spec (método, ruta,
|
|
135
94
|
parámetros, cabeceras y campos del cuerpo), exige que sea de máquina a máquina
|
|
136
95
|
(que acepte la clave de API o sea pública) y comprueba que las familias del
|
|
@@ -149,11 +108,6 @@ y `catalog`.
|
|
|
149
108
|
`ApiError`. Antes era un `SyntaxError` o un `ConfigurationError`.
|
|
150
109
|
- `VERSION` se compara con `package.json` en las pruebas.
|
|
151
110
|
|
|
152
|
-
### Pendiente para versiones siguientes
|
|
153
|
-
|
|
154
|
-
- Beneficiarios, con su importación masiva.
|
|
155
|
-
- Métricas de consumo.
|
|
156
|
-
|
|
157
111
|
## [0.1.0] — 2026-09-18
|
|
158
112
|
|
|
159
113
|
Primera versión del SDK oficial de JavaScript y TypeScript.
|
|
@@ -179,18 +133,3 @@ Primera versión del SDK oficial de JavaScript y TypeScript.
|
|
|
179
133
|
superior.
|
|
180
134
|
- Ejemplos para Node (`examples/validate.mjs`) y para un webhook en Express
|
|
181
135
|
(`examples/express-webhook.mjs`).
|
|
182
|
-
|
|
183
|
-
### Pendiente para versiones siguientes
|
|
184
|
-
|
|
185
|
-
- Modo asíncrono (`?async=1`) y sondeo con `ETag`.
|
|
186
|
-
- Validación por OCR de una imagen de comprobante.
|
|
187
|
-
- Beneficiarios, importación masiva y finanzas.
|
|
188
|
-
|
|
189
|
-
[No publicado]: https://github.com/veriko-mx-labs/veriko-js/compare/v0.4.2...HEAD
|
|
190
|
-
[0.4.2]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.4.2
|
|
191
|
-
[0.4.1]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.4.1
|
|
192
|
-
[0.4.0]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.4.0
|
|
193
|
-
[0.3.1]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.3.1
|
|
194
|
-
[0.3.0]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.3.0
|
|
195
|
-
[0.2.0]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.2.0
|
|
196
|
-
[0.1.0]: https://github.com/veriko-mx-labs/veriko-js/releases/tag/v0.1.0
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# @veriko-mx/sdk · SDK de JavaScript y TypeScript para la API
|
|
1
|
+
# @veriko-mx/sdk · SDK de JavaScript y TypeScript para la API de Veriko
|
|
2
2
|
|
|
3
|
-
Cliente oficial de [Veriko](https://veriko.mx) para Node.
|
|
4
|
-
contra el CEP de Banco de México, descarga el comprobante
|
|
5
|
-
webhooks.
|
|
3
|
+
Cliente oficial de [Veriko](https://veriko.mx) para Node.
|
|
4
|
+
Valida transferencias SPEI mexicanas contra el CEP de Banco de México, descarga el comprobante
|
|
5
|
+
oficial y verifica la firma de los webhooks.
|
|
6
6
|
|
|
7
7
|
Sin dependencias de runtime. Tipos generados del spec de OpenAPI. Node 18 o superior, en ESM y en
|
|
8
8
|
CommonJS.
|
|
@@ -46,9 +46,6 @@ La API consulta el CEP y devuelve un veredicto en el campo `status`:
|
|
|
46
46
|
| `invalid` | Los datos enviados no forman una consulta válida |
|
|
47
47
|
| `error` | Fallo durante el procesamiento; el motivo viaja en `error_code` |
|
|
48
48
|
|
|
49
|
-
La distinción entre `not_found` y `cep_unavailable` es la que importa al integrar: el primero es
|
|
50
|
-
una respuesta de Banxico sobre la transferencia, el segundo es la ausencia de respuesta.
|
|
51
|
-
|
|
52
49
|
Con veredicto `valid`, el comprobante queda disponible en XML y en PDF.
|
|
53
50
|
|
|
54
51
|
## Las familias de operaciones
|
|
@@ -226,7 +223,7 @@ const endpoint = await client.webhooks.create({
|
|
|
226
223
|
events: ['validation.completed'],
|
|
227
224
|
});
|
|
228
225
|
|
|
229
|
-
console.log(endpoint.attributes.secret); //
|
|
226
|
+
console.log(endpoint.attributes.secret); // 64 hex
|
|
230
227
|
```
|
|
231
228
|
|
|
232
229
|
El secreto de firma viaja **una sola vez**, en esta respuesta. Si se pierde,
|
|
@@ -271,7 +268,7 @@ console.log(found.attributes.bank_name);
|
|
|
271
268
|
```
|
|
272
269
|
|
|
273
270
|
La lista completa se recorre con `client.beneficiaries.list()`, que no pagina, y `delete()` archiva una cuenta sin
|
|
274
|
-
borrarla: `list({ withArchived: true })` devuelve sólo las archivadas. `export()` la
|
|
271
|
+
borrarla: `list({ withArchived: true })` devuelve sólo las archivadas. `export()` la descarga en CSV o en
|
|
275
272
|
XLSX.
|
|
276
273
|
|
|
277
274
|
### Importación masiva
|
|
@@ -311,7 +308,7 @@ const limits = await client.usage.limits();
|
|
|
311
308
|
|
|
312
309
|
`summary()` trae la cuota del plan en curso y `limits()` los límites de tasa, que son ajenos a esa
|
|
313
310
|
cuota. `breakdown()`, `heatmap()` y `apiUsage()` desglosan el consumo, y
|
|
314
|
-
`client.usage.export({ format: 'csv' })`
|
|
311
|
+
`client.usage.export({ format: 'csv' })` descarga el registro de actividad.
|
|
315
312
|
|
|
316
313
|
## Lecturas condicionales
|
|
317
314
|
|
|
@@ -493,12 +490,11 @@ npm run gen:types # openapi-typescript sobre spec/openapi.yaml
|
|
|
493
490
|
```
|
|
494
491
|
|
|
495
492
|
La copia de `spec/openapi.yaml` sale de
|
|
496
|
-
[docs.veriko.mx/openapi.yaml](https://docs.veriko.mx/openapi.yaml),
|
|
497
|
-
|
|
498
|
-
`npm run check:spec-public` lo comprueba en cada ejecución del CI.
|
|
493
|
+
[docs.veriko.mx/openapi.yaml](https://docs.veriko.mx/openapi.yaml), y `npm run check:spec-public`
|
|
494
|
+
comprueba en cada ejecución del CI que cumple el contrato de la API.
|
|
499
495
|
|
|
500
|
-
|
|
501
|
-
|
|
496
|
+
Los ejemplos de ese spec citan un host genérico. La raíz real de la API la fija el SDK en
|
|
497
|
+
`DEFAULT_BASE_URL`.
|
|
502
498
|
|
|
503
499
|
Cada método devuelve el recurso `data` de la respuesta, tipado por el spec: `validation.attributes`,
|
|
504
500
|
`endpoint.attributes.secret`, `bank.attributes.name`.
|
|
@@ -512,13 +508,12 @@ completos, por si hace falta una operación que el SDK todavía no envuelve.
|
|
|
512
508
|
|
|
513
509
|
## Superficie M2M
|
|
514
510
|
|
|
515
|
-
El SDK cubre exactamente las 66 operaciones
|
|
516
|
-
|
|
517
|
-
`x-auth`, etiquetas ni familias. Cualquier operación que sólo admita `CookieAuth` queda fuera.
|
|
511
|
+
El SDK cubre exactamente las 66 operaciones del spec público: `security: []` para las públicas y
|
|
512
|
+
`ApiKeyAuth` para las autenticadas.
|
|
518
513
|
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
514
|
+
Entre ellas están el perfil y su política de reintentos, el resumen del panel, los dos endpoints
|
|
515
|
+
públicos de planes, las cuatro vistas de insights, las siete operaciones financieras y la
|
|
516
|
+
suscripción. Por ejemplo:
|
|
522
517
|
|
|
523
518
|
```ts
|
|
524
519
|
const profile = await client.account.myProfile();
|
|
@@ -527,14 +522,10 @@ const statement = await client.finance.getStatement({ month: '2026-04', format:
|
|
|
527
522
|
await writeFile(statement.filename, statement.content);
|
|
528
523
|
```
|
|
529
524
|
|
|
530
|
-
Los reportes mensual, por contraparte, por banco y contable conservan el
|
|
525
|
+
Los reportes mensual, por contraparte, por banco y contable conservan el valor por omisión de la API:
|
|
531
526
|
`format: 'csv'`. Usa `format: 'preview'` explícitamente cuando necesites la respuesta JSON para
|
|
532
527
|
procesarla en memoria.
|
|
533
528
|
|
|
534
|
-
La importación masiva de validaciones, las sesiones de usuario y el playground siguen fuera: sólo
|
|
535
|
-
aceptan cookie de sesión. La corrección también retira el antiguo `validateAccount()`; ya no forma
|
|
536
|
-
parte del contrato M2M público.
|
|
537
|
-
|
|
538
529
|
## Desarrollo
|
|
539
530
|
|
|
540
531
|
```bash
|
|
@@ -545,9 +536,9 @@ npm run typecheck # tsc --noEmit
|
|
|
545
536
|
npm run build # dist/esm y dist/cjs
|
|
546
537
|
```
|
|
547
538
|
|
|
548
|
-
`test/operations.test.ts` compara el conjunto completo de métodos con el spec
|
|
549
|
-
ruta contra un servidor HTTP local y falla si aparece una operación M2M sin método
|
|
550
|
-
al contrato
|
|
539
|
+
`test/operations.test.ts` compara el conjunto completo de métodos con el spec, ejerce cada
|
|
540
|
+
ruta contra un servidor HTTP local y falla si aparece una operación M2M sin método o un método ajeno
|
|
541
|
+
al contrato.
|
|
551
542
|
|
|
552
543
|
Ninguna prueba llama a la API. El arnés levanta un servidor HTTP local que sirve las respuestas
|
|
553
544
|
guardadas en [`test/recordings/`](test/recordings), recortadas de los ejemplos del spec público.
|
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.5";
|
|
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.5';
|
|
13
13
|
/**
|
|
14
14
|
* Cliente de la API de Veriko.
|
|
15
15
|
*
|
|
@@ -1062,7 +1062,7 @@ export interface paths {
|
|
|
1062
1062
|
* {% callout type="warning" %}
|
|
1063
1063
|
* **Firma secreta:**\
|
|
1064
1064
|
* El `secret` de firma se devuelve **únicamente en esta respuesta** y no puede recuperarse después. Un secreto perdido se sustituye con `POST /v1/webhooks/{id}/regenerate-secret`, que devuelve el nuevo e invalida el anterior de inmediato — el endpoint no hay que volver a registrarlo.\
|
|
1065
|
-
* Ese secreto verifica cada entrega: el HMAC-SHA256 del cuerpo recibido debe coincidir con la cabecera `X-
|
|
1065
|
+
* Ese secreto verifica cada entrega: el HMAC-SHA256 del cuerpo recibido debe coincidir con la cabecera `X-Webhook-Signature: sha256=<hex>`.\
|
|
1066
1066
|
* \
|
|
1067
1067
|
* La firma, y más detalles se describen en {% concept slug="webhooks-architecture" %}la arquitectura de webhooks{% /concept %}.
|
|
1068
1068
|
*
|
|
@@ -3719,30 +3719,30 @@ export interface components {
|
|
|
3719
3719
|
* @description URL receptora del webhook. En producción se rechaza si no usa HTTPS, si resuelve a una dirección privada o si pasa de 2048 caracteres.
|
|
3720
3720
|
* @example https://example.com/webhooks/entregas
|
|
3721
3721
|
*/
|
|
3722
|
-
url
|
|
3722
|
+
url: string;
|
|
3723
3723
|
/** @description Eventos a los que se suscribe el endpoint webhook. Entre 1 y 10. */
|
|
3724
|
-
events
|
|
3724
|
+
events: ("validation.completed" | "validation.failed" | "validation.error" | "validation.retry.scheduled" | "validation.retry.resolved" | "validation.retry.exhausted" | "billing.payment_succeeded" | "billing.payment_failed" | "billing.trial_will_end" | "billing.subscription_canceled" | "billing.invoice_upcoming")[];
|
|
3725
3725
|
/**
|
|
3726
3726
|
* @description Etiqueta libre para distinguir el endpoint webhook de los demás.
|
|
3727
3727
|
* @example Alta de pagos en el ERP
|
|
3728
3728
|
*/
|
|
3729
|
-
description
|
|
3729
|
+
description: string | null;
|
|
3730
3730
|
/**
|
|
3731
3731
|
* @description Estado actual del webhook — `active`: Recibe entregas; `disabled`: Se desactivó manualmente; `auto_disabled`: Se desactivó automáticamente tras superar el umbral de fallos consecutivos.
|
|
3732
3732
|
* @example active
|
|
3733
3733
|
* @enum {string}
|
|
3734
3734
|
*/
|
|
3735
|
-
status
|
|
3735
|
+
status: "active" | "disabled" | "auto_disabled";
|
|
3736
3736
|
/**
|
|
3737
3737
|
* @description Cantidad de fallos consecutivos. Se reinicia al primer éxito.
|
|
3738
3738
|
* @example 0
|
|
3739
3739
|
*/
|
|
3740
|
-
consecutive_failures
|
|
3741
|
-
/** @description Fecha y hora
|
|
3742
|
-
last_delivery_at
|
|
3740
|
+
consecutive_failures: number;
|
|
3741
|
+
/** @description Fecha y hora de la última entrega exitosa, en ISO 8601 UTC. `null` cuando el endpoint aún no completó ninguna entrega. */
|
|
3742
|
+
last_delivery_at: components["schemas"]["TimestampUTC"] | null;
|
|
3743
3743
|
/**
|
|
3744
|
-
* @description Clave compartida para verificar firmas. **Solo presente** en la respuesta de creación y de rotación del endpoint; se omite en cualquier otra respuesta.
|
|
3745
|
-
* @example
|
|
3744
|
+
* @description Clave compartida para verificar firmas. **Solo presente** en la respuesta de creación y de rotación del endpoint; se omite en cualquier otra respuesta. Se usa para validar la cabecera `X-Webhook-Signature` de cada entrega.
|
|
3745
|
+
* @example a0b1c2d3e4f5061728394a5b6c7d8e9f00112233445566778899aabbccddeeff
|
|
3746
3746
|
*/
|
|
3747
3747
|
secret?: string;
|
|
3748
3748
|
/**
|
|
@@ -3750,9 +3750,9 @@ export interface components {
|
|
|
3750
3750
|
* @example ...4f2a
|
|
3751
3751
|
*/
|
|
3752
3752
|
secret_hint?: string;
|
|
3753
|
-
created_at
|
|
3754
|
-
updated_at
|
|
3755
|
-
};
|
|
3753
|
+
created_at: components["schemas"]["TimestampUTC"];
|
|
3754
|
+
updated_at: components["schemas"]["TimestampUTC"];
|
|
3755
|
+
} & (unknown | unknown);
|
|
3756
3756
|
};
|
|
3757
3757
|
/** @description Cuerpo de `POST /v1/webhooks` con la URL HTTPS receptora, los eventos suscritos y una etiqueta opcional. */
|
|
3758
3758
|
CreateWebhookRequest: {
|
|
@@ -3765,23 +3765,23 @@ export interface components {
|
|
|
3765
3765
|
/** @description Eventos a los que se suscribe el endpoint webhook. Entre 1 y 10. */
|
|
3766
3766
|
events: ("validation.completed" | "validation.failed" | "validation.error" | "validation.retry.scheduled" | "validation.retry.resolved" | "validation.retry.exhausted" | "billing.payment_succeeded" | "billing.payment_failed" | "billing.trial_will_end" | "billing.subscription_canceled" | "billing.invoice_upcoming")[];
|
|
3767
3767
|
/**
|
|
3768
|
-
* @description Etiqueta libre para distinguir el endpoint webhook de los demás.
|
|
3768
|
+
* @description Etiqueta libre para distinguir el endpoint webhook de los demás. `null` la omite; el servicio recorta el texto a 255 caracteres.
|
|
3769
3769
|
* @example Alta de pagos en el ERP
|
|
3770
3770
|
*/
|
|
3771
|
-
description?: string;
|
|
3771
|
+
description?: string | null;
|
|
3772
3772
|
};
|
|
3773
3773
|
/** @description Cuerpo de `PUT /v1/webhooks/{id}` con los campos del endpoint que deben actualizarse. */
|
|
3774
3774
|
UpdateWebhookRequest: {
|
|
3775
3775
|
/**
|
|
3776
3776
|
* Format: uri
|
|
3777
|
-
* @description Nueva URL receptora del webhook
|
|
3777
|
+
* @description Nueva URL receptora del webhook. En producción se rechaza si no usa HTTPS, si no resuelve a una dirección pública o si supera 2048 caracteres.
|
|
3778
3778
|
* @example https://example.com/webhooks/entregas
|
|
3779
3779
|
*/
|
|
3780
3780
|
url?: string;
|
|
3781
3781
|
/** @description Nuevos eventos a los que se suscribe el endpoint webhook. Sustituyen a la lista anterior. Entre 1 y 10. */
|
|
3782
3782
|
events?: ("validation.completed" | "validation.failed" | "validation.error" | "validation.retry.scheduled" | "validation.retry.resolved" | "validation.retry.exhausted" | "billing.payment_succeeded" | "billing.payment_failed" | "billing.trial_will_end" | "billing.subscription_canceled" | "billing.invoice_upcoming")[];
|
|
3783
3783
|
/**
|
|
3784
|
-
* @description Nueva etiqueta libre para distinguir el endpoint webhook de los demás. `null` la elimina.
|
|
3784
|
+
* @description Nueva etiqueta libre para distinguir el endpoint webhook de los demás. `null` la elimina; el servicio recorta el texto a 255 caracteres.
|
|
3785
3785
|
* @example Alta de pagos en el ERP
|
|
3786
3786
|
*/
|
|
3787
3787
|
description?: string | null;
|
|
@@ -3810,10 +3810,10 @@ export interface components {
|
|
|
3810
3810
|
*/
|
|
3811
3811
|
response_time_ms: number;
|
|
3812
3812
|
/**
|
|
3813
|
-
* @description Detalle de
|
|
3813
|
+
* @description Detalle del fallo de transporte o de validación de URL. Puede ser `null` aunque `delivered=false` si el receptor respondió con un estado fuera de `2xx` pero la petición se completó.
|
|
3814
3814
|
* @example Connection timed out after 10s
|
|
3815
3815
|
*/
|
|
3816
|
-
error
|
|
3816
|
+
error: string | null;
|
|
3817
3817
|
};
|
|
3818
3818
|
/** @description Recurso JSON:API de una entrega de webhook, con receptor, intento, respuesta y estado. */
|
|
3819
3819
|
WebhookDelivery: components["schemas"]["JsonApiResourceBase"] & {
|
|
@@ -3835,7 +3835,7 @@ export interface components {
|
|
|
3835
3835
|
* @description Identificador único del endpoint webhook (UUID v4) que originó esta entrega.
|
|
3836
3836
|
* @example a1b2c3d4-e5f6-7890-abcd-ef0123456789
|
|
3837
3837
|
*/
|
|
3838
|
-
endpoint_id
|
|
3838
|
+
endpoint_id: string;
|
|
3839
3839
|
/**
|
|
3840
3840
|
* @description URL receptora del webhook (endpoint). Solo presente en el listado global (`GET /v1/webhooks/deliveries`).
|
|
3841
3841
|
* @example https://erp.example.com/hooks/pagos
|
|
@@ -3846,47 +3846,47 @@ export interface components {
|
|
|
3846
3846
|
* @example validation.completed
|
|
3847
3847
|
* @enum {string}
|
|
3848
3848
|
*/
|
|
3849
|
-
event_type
|
|
3849
|
+
event_type: "validation.completed" | "validation.failed" | "validation.error" | "validation.retry.scheduled" | "validation.retry.resolved" | "validation.retry.exhausted" | "billing.payment_succeeded" | "billing.payment_failed" | "billing.trial_will_end" | "billing.subscription_canceled" | "billing.invoice_upcoming" | "test";
|
|
3850
3850
|
/**
|
|
3851
3851
|
* Format: uuid
|
|
3852
3852
|
* @description Identificador único de la validación (UUID v4) asociada cuando el evento es `validation.*`. `null` cuando el evento es otro.
|
|
3853
3853
|
* @example a1b2c3d4-e5f6-7890-abcd-ef0123456789
|
|
3854
3854
|
*/
|
|
3855
|
-
validation_id
|
|
3855
|
+
validation_id: string | null;
|
|
3856
3856
|
/**
|
|
3857
3857
|
* @description Código de estado HTTP con el que respondió el endpoint webhook receptor. `null` cuando la entrega no llegó a establecer respuesta (tiempo de espera agotado o bloqueo).
|
|
3858
3858
|
* @example 200
|
|
3859
3859
|
*/
|
|
3860
|
-
response_status
|
|
3860
|
+
response_status: number | null;
|
|
3861
3861
|
/**
|
|
3862
3862
|
* @description Cuerpo de la respuesta del endpoint webhook receptor, truncado a 500 caracteres.
|
|
3863
3863
|
* @example {"ok":true}
|
|
3864
3864
|
*/
|
|
3865
|
-
response_body
|
|
3865
|
+
response_body: string | null;
|
|
3866
3866
|
/**
|
|
3867
3867
|
* @description Duración de la petición de entrega (en milisegundos).
|
|
3868
3868
|
* @example 184
|
|
3869
3869
|
*/
|
|
3870
|
-
response_time_ms
|
|
3870
|
+
response_time_ms: number | null;
|
|
3871
3871
|
/**
|
|
3872
3872
|
* @description Número del intento. `1` es el primer envío; los mayores, reintentos.
|
|
3873
3873
|
* @example 1
|
|
3874
3874
|
*/
|
|
3875
|
-
attempt
|
|
3875
|
+
attempt: number;
|
|
3876
3876
|
/**
|
|
3877
|
-
* @description Estado actual de la entrega — `pending`: Aún sin entregar; `retrying`:
|
|
3877
|
+
* @description Estado actual de la entrega — `pending`: Aún sin entregar; `retrying`: Se pospuso por el límite de salida y Messenger la reintentará; `success`: Entregada; `failed`: El último intento falló; Messenger puede programar otro si el fallo es recuperable.
|
|
3878
3878
|
* @example pending
|
|
3879
3879
|
* @enum {string}
|
|
3880
3880
|
*/
|
|
3881
|
-
status
|
|
3882
|
-
/** @description Fecha y hora del próximo reintento
|
|
3883
|
-
next_retry_at
|
|
3881
|
+
status: "pending" | "retrying" | "success" | "failed";
|
|
3882
|
+
/** @description Fecha y hora del próximo reintento persistido, en ISO 8601 UTC. `null` cuando no hay una fecha almacenada; los reintentos que programa Messenger no persisten esta fecha en la entrega. */
|
|
3883
|
+
next_retry_at: components["schemas"]["TimestampUTC"] | null;
|
|
3884
3884
|
/**
|
|
3885
|
-
* @description
|
|
3885
|
+
* @description Detalle de error del transporte o del bloqueo de la entrega. `null` cuando no hay un detalle de error, incluso si el receptor respondió con un estado fuera de `2xx`.
|
|
3886
3886
|
* @example Connection timed out after 10s
|
|
3887
3887
|
*/
|
|
3888
|
-
error_message
|
|
3889
|
-
created_at
|
|
3888
|
+
error_message: string | null;
|
|
3889
|
+
created_at: components["schemas"]["TimestampUTC"];
|
|
3890
3890
|
};
|
|
3891
3891
|
};
|
|
3892
3892
|
/** @description Característica bilingüe de un plan, con indicador visual, orden y estado. */
|
|
@@ -7194,7 +7194,7 @@ export interface operations {
|
|
|
7194
7194
|
};
|
|
7195
7195
|
};
|
|
7196
7196
|
responses: {
|
|
7197
|
-
/** @description Endpoint webhook creado. El campo `secret` aparece **solo en esta respuesta** y no puede volver a consultarse: es el que verifica la firma `X-
|
|
7197
|
+
/** @description Endpoint webhook creado. El campo `secret` aparece **solo en esta respuesta** y no puede volver a consultarse: es el que verifica la firma `X-Webhook-Signature: sha256=<hex>` que acompaña a cada entrega. */
|
|
7198
7198
|
201: {
|
|
7199
7199
|
headers: {
|
|
7200
7200
|
[name: string]: unknown;
|
|
@@ -7268,7 +7268,7 @@ export interface operations {
|
|
|
7268
7268
|
};
|
|
7269
7269
|
};
|
|
7270
7270
|
};
|
|
7271
|
-
/** @description El cuerpo de la petición está vacío o no es JSON válido. */
|
|
7271
|
+
/** @description El cuerpo de la petición está vacío o no es JSON válido, o la URL nueva no resuelve a una dirección pública. */
|
|
7272
7272
|
400: {
|
|
7273
7273
|
headers: {
|
|
7274
7274
|
[name: string]: unknown;
|
|
@@ -7477,6 +7477,7 @@ export interface operations {
|
|
|
7477
7477
|
};
|
|
7478
7478
|
content: {
|
|
7479
7479
|
"text/csv": string;
|
|
7480
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string;
|
|
7480
7481
|
};
|
|
7481
7482
|
};
|
|
7482
7483
|
401: components["responses"]["Unauthorized"];
|
|
@@ -7544,7 +7545,7 @@ export interface operations {
|
|
|
7544
7545
|
*/
|
|
7545
7546
|
endpoint_id?: string;
|
|
7546
7547
|
/**
|
|
7547
|
-
* @description Filtro —
|
|
7548
|
+
* @description Filtro — Estado de la entrega. `success` llegó. `failed` es el resultado del último intento; Messenger puede programar otro si el fallo es recuperable. `retrying` se pospuso por el límite de salida y Messenger la reintentará. `pending` todavía no se ha intentado.
|
|
7548
7549
|
* @example failed
|
|
7549
7550
|
*/
|
|
7550
7551
|
status?: "success" | "failed" | "retrying" | "pending";
|
|
@@ -7599,7 +7600,7 @@ export interface operations {
|
|
|
7599
7600
|
endpoint_id?: string;
|
|
7600
7601
|
/**
|
|
7601
7602
|
* @description \
|
|
7602
|
-
* Filtro —
|
|
7603
|
+
* Filtro — Estado de la entrega. `success` llegó. `failed` es el resultado del último intento; Messenger puede programar otro si el fallo es recuperable. `retrying` se pospuso por el límite de salida y Messenger la reintentará. `pending` todavía no se ha intentado.
|
|
7603
7604
|
* @example failed
|
|
7604
7605
|
*/
|
|
7605
7606
|
status?: "success" | "failed" | "retrying" | "pending";
|
|
@@ -7633,6 +7634,7 @@ export interface operations {
|
|
|
7633
7634
|
};
|
|
7634
7635
|
content: {
|
|
7635
7636
|
"text/csv": string;
|
|
7637
|
+
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": string;
|
|
7636
7638
|
};
|
|
7637
7639
|
};
|
|
7638
7640
|
401: components["responses"]["Unauthorized"];
|