@pimia/sdk 0.9.0 → 0.10.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/dist/api.d.ts +231 -41
- package/dist/index.d.ts +13 -0
- package/dist/index.js +13 -0
- package/package.json +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -167,7 +167,7 @@ export interface paths {
|
|
|
167
167
|
* `group_by=customer` añade by_customer; con `group_by=category`, by_category.
|
|
168
168
|
* Lo consumen las tools MCP de informes (invoice-shelf-mcp).
|
|
169
169
|
*
|
|
170
|
-
* Importes en
|
|
170
|
+
* Importes en subunidades enteras de la moneda, como el resto de la API.
|
|
171
171
|
*
|
|
172
172
|
* QUÉ FACTURAS CUENTAN, que es la clase de cifra que un integrador no puede
|
|
173
173
|
* verificar por su cuenta y que hasta el 2026-08-24 el contrato no decía:
|
|
@@ -582,7 +582,6 @@ export interface paths {
|
|
|
582
582
|
/**
|
|
583
583
|
* Update the Admin profile.
|
|
584
584
|
* Includes name, email and (or) password
|
|
585
|
-
* @description **No disponible para integradores.** Exige `admin:write`, que el Authorization Server de Pimia no emite: la acción la realiza el dueño desde su panel y un token de partner recibe `403`. Aparece en el contrato para que el hueco sea explícito, no para que se llame.
|
|
586
585
|
*/
|
|
587
586
|
put: operations["company.updateProfile"];
|
|
588
587
|
post?: never;
|
|
@@ -680,6 +679,95 @@ export interface paths {
|
|
|
680
679
|
patch?: never;
|
|
681
680
|
trace?: never;
|
|
682
681
|
};
|
|
682
|
+
"/settings/connected-apps": {
|
|
683
|
+
parameters: {
|
|
684
|
+
query?: never;
|
|
685
|
+
header?: never;
|
|
686
|
+
path?: never;
|
|
687
|
+
cookie?: never;
|
|
688
|
+
};
|
|
689
|
+
/**
|
|
690
|
+
* Apps a las que este usuario ha autorizado el acceso a su cuenta
|
|
691
|
+
* @description **Reservada al panel de Pimia.** Exige `admin:read`, que el Authorization Server emite SOLO al client de primera parte: un client de integrador no puede pedir ese scope —se le rechaza en el registro y no se le anuncia— y con cualquier otro token la llamada recibe `403`. Está en el contrato porque es el panel web de Pimia quien la consume, y sus tipos salen de aquí.
|
|
692
|
+
*
|
|
693
|
+
* `credentials` son las sesiones vivas del grant: una por dispositivo o
|
|
694
|
+
* proceso que completó una ceremonia OAuth. `connected_at` es el instante
|
|
695
|
+
* de ESA ceremonia y no el de la última renovación, que es lo que hace que
|
|
696
|
+
* la pantalla pueda decir «conectado desde el 25» de una sesión que rota su
|
|
697
|
+
* refresh cada día.
|
|
698
|
+
*
|
|
699
|
+
* `last_used_at` sale del PAT emparejado y no del refresh: el grant se toca
|
|
700
|
+
* en canje/refresh —una vez al día— y el PAT en CADA petición, así que es
|
|
701
|
+
* el único que sabe si esa sesión sigue trabajando. Sale null mientras la
|
|
702
|
+
* credencial no haya hecho ninguna petición todavía.
|
|
703
|
+
*
|
|
704
|
+
* `active_tokens` se queda como estaba (cuenta los PAT del client, rotados
|
|
705
|
+
* aún no caducados incluidos) para no romper a quien ya lo lee; lo que
|
|
706
|
+
* cuenta dispositivos es `credentials`.
|
|
707
|
+
*/
|
|
708
|
+
get: operations["connectedApps.index"];
|
|
709
|
+
put?: never;
|
|
710
|
+
post?: never;
|
|
711
|
+
delete?: never;
|
|
712
|
+
options?: never;
|
|
713
|
+
head?: never;
|
|
714
|
+
patch?: never;
|
|
715
|
+
trace?: never;
|
|
716
|
+
};
|
|
717
|
+
"/settings/connected-apps/credentials/{credentialId}": {
|
|
718
|
+
parameters: {
|
|
719
|
+
query?: never;
|
|
720
|
+
header?: never;
|
|
721
|
+
path?: never;
|
|
722
|
+
cookie?: never;
|
|
723
|
+
};
|
|
724
|
+
get?: never;
|
|
725
|
+
put?: never;
|
|
726
|
+
post?: never;
|
|
727
|
+
/**
|
|
728
|
+
* Cierra UNA credencial —un dispositivo— sin tocar las demás ni el grant
|
|
729
|
+
* @description **Reservada al panel de Pimia.** Exige `admin:write`, que el Authorization Server emite SOLO al client de primera parte: un client de integrador no puede pedir ese scope —se le rechaza en el registro y no se le anuncia— y con cualquier otro token la llamada recibe `403`. Está en el contrato porque es el panel web de Pimia quien la consume, y sus tipos salen de aquí.
|
|
730
|
+
*
|
|
731
|
+
* La app sigue conectada desde donde siga viva; para retirarle el acceso
|
|
732
|
+
* entero está `destroy`. Por eso esta operación no emite `app.revoked`: al
|
|
733
|
+
* integrador no le ha caído la puerta, se le ha caído una sesión.
|
|
734
|
+
*
|
|
735
|
+
* El grant sale de la propia credencial y se comprueba con el mismo filtro
|
|
736
|
+
* que el resto de la pantalla (este usuario, este tenant, sin revocar), así
|
|
737
|
+
* que la ruta no lo nombra: no hay forma de pedir un par descuadrado.
|
|
738
|
+
*
|
|
739
|
+
* 404 cuando la credencial no existe, no es de este usuario o ya no está
|
|
740
|
+
* viva (rotada, revocada o caducada): quien cierra estaba mirando una lista
|
|
741
|
+
* de hace un momento y lo que necesita es recargarla, no un error distinto
|
|
742
|
+
* por cada motivo.
|
|
743
|
+
*/
|
|
744
|
+
delete: operations["connectedApps.destroyCredential"];
|
|
745
|
+
options?: never;
|
|
746
|
+
head?: never;
|
|
747
|
+
patch?: never;
|
|
748
|
+
trace?: never;
|
|
749
|
+
};
|
|
750
|
+
"/settings/connected-apps/{authorizationId}": {
|
|
751
|
+
parameters: {
|
|
752
|
+
query?: never;
|
|
753
|
+
header?: never;
|
|
754
|
+
path?: never;
|
|
755
|
+
cookie?: never;
|
|
756
|
+
};
|
|
757
|
+
get?: never;
|
|
758
|
+
put?: never;
|
|
759
|
+
post?: never;
|
|
760
|
+
/**
|
|
761
|
+
* Retira el acceso de la app entera: cae el grant, sus refresh tokens y los
|
|
762
|
+
* PAT que esa app acuñó para este usuario. Todas sus credenciales con él
|
|
763
|
+
* @description **Reservada al panel de Pimia.** Exige `admin:write`, que el Authorization Server emite SOLO al client de primera parte: un client de integrador no puede pedir ese scope —se le rechaza en el registro y no se le anuncia— y con cualquier otro token la llamada recibe `403`. Está en el contrato porque es el panel web de Pimia quien la consume, y sus tipos salen de aquí.
|
|
764
|
+
*/
|
|
765
|
+
delete: operations["connectedApps.destroy"];
|
|
766
|
+
options?: never;
|
|
767
|
+
head?: never;
|
|
768
|
+
patch?: never;
|
|
769
|
+
trace?: never;
|
|
770
|
+
};
|
|
683
771
|
"/contacts": {
|
|
684
772
|
parameters: {
|
|
685
773
|
query?: never;
|
|
@@ -3247,8 +3335,8 @@ export interface paths {
|
|
|
3247
3335
|
*
|
|
3248
3336
|
* ⚠️ `total_credits` y `total_debits` SÍ son cadenas, y a propósito: son
|
|
3249
3337
|
* `SUM(amount)` sobre una columna `decimal(15,2)` que PostgreSQL entrega
|
|
3250
|
-
* como texto, y van en
|
|
3251
|
-
*
|
|
3338
|
+
* como texto, y van en la UNIDAD MAYOR de la moneda, con decimales, como el
|
|
3339
|
+
* resto de la banca —no en subunidades enteras como el resto de la API.
|
|
3252
3340
|
*/
|
|
3253
3341
|
get: operations["reconciliation.summary"];
|
|
3254
3342
|
put?: never;
|
|
@@ -3289,10 +3377,10 @@ export interface paths {
|
|
|
3289
3377
|
* ordenados por `score` descendente (importe, proximidad de fecha,
|
|
3290
3378
|
* referencia y nombre del cliente).
|
|
3291
3379
|
*
|
|
3292
|
-
* **`amount` va en
|
|
3293
|
-
* importe de documento en esta API. No lo confundas con
|
|
3294
|
-
* `bank_transactions.amount`, que sí va en
|
|
3295
|
-
* reflejo de un extracto bancario. `number` es `null` en los borradores,
|
|
3380
|
+
* **`amount` va en subunidades enteras**, como el `total` del que sale y como
|
|
3381
|
+
* todo importe de documento en esta API. No lo confundas con
|
|
3382
|
+
* `bank_transactions.amount`, que sí va en la unidad mayor con decimales por
|
|
3383
|
+
* ser el reflejo de un extracto bancario. `number` es `null` en los borradores,
|
|
3296
3384
|
* que nacen sin numerar: el identificador estable es `model.id`.
|
|
3297
3385
|
*/
|
|
3298
3386
|
get: operations["reconciliation.suggestions"];
|
|
@@ -4096,7 +4184,7 @@ export interface paths {
|
|
|
4096
4184
|
put?: never;
|
|
4097
4185
|
/**
|
|
4098
4186
|
* POST tasks/{task}/delegate — delega esta tarea CRM a su agente Pim
|
|
4099
|
-
* @description **
|
|
4187
|
+
* @description **Reservada al panel de Pimia.** Exige `crm:write`, `delegation:write`, que el Authorization Server emite SOLO al client de primera parte: un client de integrador no puede pedir esos scopes —se le rechazan en el registro y no se le anuncian— y con cualquier otro token la llamada recibe `403`. Está en el contrato porque es el panel web de Pimia quien la consume, y sus tipos salen de aquí.
|
|
4100
4188
|
*
|
|
4101
4189
|
* Reusa el plano async `delegated_tasks` (el mismo que ya cierra el round-trip
|
|
4102
4190
|
* delegar→agente→callback→sello): compone un context rico desde la tarea (título,
|
|
@@ -5111,7 +5199,7 @@ export interface components {
|
|
|
5111
5199
|
name: string;
|
|
5112
5200
|
iban: string | null;
|
|
5113
5201
|
bank_name: string | null;
|
|
5114
|
-
/** @description
|
|
5202
|
+
/** @description En la UNIDAD MAYOR de la moneda de la cuenta, con decimales (`2322.11` son 2.322,11 de la moneda que declare su `currency_code`), a diferencia del resto de la API, que cuenta el dinero en SUBUNIDADES enteras (céntimos, en una moneda de dos decimales). La banca es la excepción porque es lo que trae un extracto bancario: redondearlo a la subunidad perdería los decimales del apunte. La conciliación convierte al comparar con facturas y gastos. */
|
|
5115
5203
|
opening_balance: string;
|
|
5116
5204
|
currency_code: string;
|
|
5117
5205
|
enabled: boolean;
|
|
@@ -5121,7 +5209,7 @@ export interface components {
|
|
|
5121
5209
|
updated_at: string | null;
|
|
5122
5210
|
/** Format: date-time */
|
|
5123
5211
|
deleted_at: string | null;
|
|
5124
|
-
/** @description
|
|
5212
|
+
/** @description En la UNIDAD MAYOR de la moneda de la cuenta, con decimales (`2322.11` son 2.322,11 de la moneda que declare su `currency_code`), a diferencia del resto de la API, que cuenta el dinero en SUBUNIDADES enteras (céntimos, en una moneda de dos decimales). La banca es la excepción porque es lo que trae un extracto bancario: redondearlo a la subunidad perdería los decimales del apunte. La conciliación convierte al comparar con facturas y gastos. */
|
|
5125
5213
|
balance: string;
|
|
5126
5214
|
};
|
|
5127
5215
|
/** BankImport */
|
|
@@ -5150,7 +5238,7 @@ export interface components {
|
|
|
5150
5238
|
transaction_date: string;
|
|
5151
5239
|
/** Format: date-time */
|
|
5152
5240
|
value_date: string | null;
|
|
5153
|
-
/** @description
|
|
5241
|
+
/** @description En la UNIDAD MAYOR de la moneda de la cuenta, con decimales (`2322.11` son 2.322,11 de la moneda que declare su `currency_code`), a diferencia del resto de la API, que cuenta el dinero en SUBUNIDADES enteras (céntimos, en una moneda de dos decimales). La banca es la excepción porque es lo que trae un extracto bancario: redondearlo a la subunidad perdería los decimales del apunte. La conciliación convierte al comparar con facturas y gastos. */
|
|
5154
5242
|
amount: string;
|
|
5155
5243
|
/**
|
|
5156
5244
|
* @description Signo del apunte tal y como lo trae el extracto: `credit` entra dinero, `debit` sale. El importe va siempre en positivo, así que el signo es esto.
|
|
@@ -6081,10 +6169,11 @@ export interface components {
|
|
|
6081
6169
|
sub_total?: number | null;
|
|
6082
6170
|
total?: number | null;
|
|
6083
6171
|
/**
|
|
6084
|
-
* @description `integer` porque son
|
|
6085
|
-
* publicaba este campo como `string` —el
|
|
6086
|
-
* de las reglas— y la API aceptaba «10.5»,
|
|
6087
|
-
* como 10,5
|
|
6172
|
+
* @description `integer` porque son SUBUNIDADES enteras de la moneda. Sin regla
|
|
6173
|
+
* de tipo, el contrato publicaba este campo como `string` —el
|
|
6174
|
+
* generador deduce el tipo de las reglas— y la API aceptaba «10.5»,
|
|
6175
|
+
* que la columna guardaba como 10,5: media subunidad, que no
|
|
6176
|
+
* significa nada.
|
|
6088
6177
|
*/
|
|
6089
6178
|
tax?: number | null;
|
|
6090
6179
|
template_name?: string | null;
|
|
@@ -6226,10 +6315,11 @@ export interface components {
|
|
|
6226
6315
|
exchange_rate?: string | null;
|
|
6227
6316
|
payment_method_id?: string | null;
|
|
6228
6317
|
/**
|
|
6229
|
-
* @description `integer` porque son
|
|
6230
|
-
* publicaba este campo como `string` —el
|
|
6231
|
-
* de las reglas— y la API aceptaba «10.5»,
|
|
6232
|
-
* como 10,5
|
|
6318
|
+
* @description `integer` porque son SUBUNIDADES enteras de la moneda. Sin regla
|
|
6319
|
+
* de tipo, el contrato publicaba este campo como `string` —el
|
|
6320
|
+
* generador deduce el tipo de las reglas— y la API aceptaba «10.5»,
|
|
6321
|
+
* que la columna guardaba como 10,5: media subunidad, que no
|
|
6322
|
+
* significa nada.
|
|
6233
6323
|
*/
|
|
6234
6324
|
amount: number;
|
|
6235
6325
|
customer_id?: string | null;
|
|
@@ -6765,10 +6855,11 @@ export interface components {
|
|
|
6765
6855
|
sub_total?: number | null;
|
|
6766
6856
|
total?: number | null;
|
|
6767
6857
|
/**
|
|
6768
|
-
* @description `integer` porque son
|
|
6769
|
-
* publicaba este campo como `string` —el
|
|
6770
|
-
* de las reglas— y la API aceptaba «10.5»,
|
|
6771
|
-
* como 10,5
|
|
6858
|
+
* @description `integer` porque son SUBUNIDADES enteras de la moneda. Sin regla
|
|
6859
|
+
* de tipo, el contrato publicaba este campo como `string` —el
|
|
6860
|
+
* generador deduce el tipo de las reglas— y la API aceptaba «10.5»,
|
|
6861
|
+
* que la columna guardaba como 10,5: media subunidad, que no
|
|
6862
|
+
* significa nada.
|
|
6772
6863
|
*/
|
|
6773
6864
|
tax?: number | null;
|
|
6774
6865
|
/**
|
|
@@ -6946,10 +7037,11 @@ export interface components {
|
|
|
6946
7037
|
ItemsRequest: {
|
|
6947
7038
|
name: string;
|
|
6948
7039
|
/**
|
|
6949
|
-
* @description `integer` porque son
|
|
6950
|
-
* publicaba este campo como `string` —el
|
|
6951
|
-
* de las reglas— y la API aceptaba «10.5»,
|
|
6952
|
-
* como 10,5
|
|
7040
|
+
* @description `integer` porque son SUBUNIDADES enteras de la moneda. Sin regla
|
|
7041
|
+
* de tipo, el contrato publicaba este campo como `string` —el
|
|
7042
|
+
* generador deduce el tipo de las reglas— y la API aceptaba «10.5»,
|
|
7043
|
+
* que la columna guardaba como 10,5: media subunidad, que no
|
|
7044
|
+
* significa nada.
|
|
6953
7045
|
*/
|
|
6954
7046
|
price: number;
|
|
6955
7047
|
/** @enum {string|null} */
|
|
@@ -7248,12 +7340,20 @@ export interface components {
|
|
|
7248
7340
|
currency?: components["schemas"]["CurrencyResource"] | null;
|
|
7249
7341
|
transaction?: components["schemas"]["TransactionResource"] | null;
|
|
7250
7342
|
};
|
|
7251
|
-
/**
|
|
7343
|
+
/**
|
|
7344
|
+
* ProfileRequest
|
|
7345
|
+
* @description `PUT /me` — el nombre, el correo y la contraseña de quien llama.
|
|
7346
|
+
*
|
|
7347
|
+
* Cambiar el **correo** o la **contraseña** exige `current_password`, la
|
|
7348
|
+
* vigente. Cambiar solo el nombre no: `name` y `email` son los dos `required`,
|
|
7349
|
+
* así que reenviar el mismo correo no cuenta como cambio.
|
|
7350
|
+
*/
|
|
7252
7351
|
ProfileRequest: {
|
|
7253
7352
|
name: string;
|
|
7254
7353
|
password?: string | null;
|
|
7255
7354
|
/** Format: email */
|
|
7256
7355
|
email: string;
|
|
7356
|
+
current_password?: string;
|
|
7257
7357
|
};
|
|
7258
7358
|
/** ProjectRequest */
|
|
7259
7359
|
ProjectRequest: {
|
|
@@ -7389,10 +7489,11 @@ export interface components {
|
|
|
7389
7489
|
sub_total: number;
|
|
7390
7490
|
total: number;
|
|
7391
7491
|
/**
|
|
7392
|
-
* @description `integer` porque son
|
|
7393
|
-
* publicaba este campo como `string` —el
|
|
7394
|
-
* de las reglas— y la API aceptaba «10.5»,
|
|
7395
|
-
* como 10,5
|
|
7492
|
+
* @description `integer` porque son SUBUNIDADES enteras de la moneda. Sin regla
|
|
7493
|
+
* de tipo, el contrato publicaba este campo como `string` —el
|
|
7494
|
+
* generador deduce el tipo de las reglas— y la API aceptaba «10.5»,
|
|
7495
|
+
* que la columna guardaba como 10,5: media subunidad, que no
|
|
7496
|
+
* significa nada.
|
|
7396
7497
|
*/
|
|
7397
7498
|
tax: number;
|
|
7398
7499
|
/**
|
|
@@ -7509,10 +7610,11 @@ export interface components {
|
|
|
7509
7610
|
sub_total?: number | null;
|
|
7510
7611
|
total?: number | null;
|
|
7511
7612
|
/**
|
|
7512
|
-
* @description `integer` porque son
|
|
7513
|
-
* publicaba este campo como `string` —el
|
|
7514
|
-
* de las reglas— y la API aceptaba «10.5»,
|
|
7515
|
-
* como 10,5
|
|
7613
|
+
* @description `integer` porque son SUBUNIDADES enteras de la moneda. Sin regla
|
|
7614
|
+
* de tipo, el contrato publicaba este campo como `string` —el
|
|
7615
|
+
* generador deduce el tipo de las reglas— y la API aceptaba «10.5»,
|
|
7616
|
+
* que la columna guardaba como 10,5: media subunidad, que no
|
|
7617
|
+
* significa nada.
|
|
7516
7618
|
*/
|
|
7517
7619
|
tax?: number | null;
|
|
7518
7620
|
/**
|
|
@@ -8801,7 +8903,7 @@ export interface operations {
|
|
|
8801
8903
|
};
|
|
8802
8904
|
content: {
|
|
8803
8905
|
"application/json": {
|
|
8804
|
-
version:
|
|
8906
|
+
version: string | null;
|
|
8805
8907
|
/** @constant */
|
|
8806
8908
|
channel: "stable";
|
|
8807
8909
|
};
|
|
@@ -9765,6 +9867,94 @@ export interface operations {
|
|
|
9765
9867
|
};
|
|
9766
9868
|
};
|
|
9767
9869
|
};
|
|
9870
|
+
"connectedApps.index": {
|
|
9871
|
+
parameters: {
|
|
9872
|
+
query?: never;
|
|
9873
|
+
header?: never;
|
|
9874
|
+
path?: never;
|
|
9875
|
+
cookie?: never;
|
|
9876
|
+
};
|
|
9877
|
+
requestBody?: never;
|
|
9878
|
+
responses: {
|
|
9879
|
+
200: {
|
|
9880
|
+
headers: {
|
|
9881
|
+
[name: string]: unknown;
|
|
9882
|
+
};
|
|
9883
|
+
content: {
|
|
9884
|
+
"application/json": {
|
|
9885
|
+
data: {
|
|
9886
|
+
id: number;
|
|
9887
|
+
name: string;
|
|
9888
|
+
confidential: boolean;
|
|
9889
|
+
scopes: string[];
|
|
9890
|
+
permissions: {
|
|
9891
|
+
text: string;
|
|
9892
|
+
write: boolean;
|
|
9893
|
+
}[];
|
|
9894
|
+
summary: string;
|
|
9895
|
+
connected_at: string | null;
|
|
9896
|
+
last_used_at: string | null;
|
|
9897
|
+
active_tokens: number;
|
|
9898
|
+
credentials: {
|
|
9899
|
+
id: number;
|
|
9900
|
+
connected_at: string | null;
|
|
9901
|
+
last_used_at: string | null;
|
|
9902
|
+
expires_at: string | null;
|
|
9903
|
+
}[];
|
|
9904
|
+
}[];
|
|
9905
|
+
};
|
|
9906
|
+
};
|
|
9907
|
+
};
|
|
9908
|
+
};
|
|
9909
|
+
};
|
|
9910
|
+
"connectedApps.destroyCredential": {
|
|
9911
|
+
parameters: {
|
|
9912
|
+
query?: never;
|
|
9913
|
+
header?: never;
|
|
9914
|
+
path: {
|
|
9915
|
+
credentialId: number;
|
|
9916
|
+
};
|
|
9917
|
+
cookie?: never;
|
|
9918
|
+
};
|
|
9919
|
+
requestBody?: never;
|
|
9920
|
+
responses: {
|
|
9921
|
+
200: {
|
|
9922
|
+
headers: {
|
|
9923
|
+
[name: string]: unknown;
|
|
9924
|
+
};
|
|
9925
|
+
content: {
|
|
9926
|
+
"application/json": {
|
|
9927
|
+
message: string;
|
|
9928
|
+
revoked_tokens: number;
|
|
9929
|
+
};
|
|
9930
|
+
};
|
|
9931
|
+
};
|
|
9932
|
+
};
|
|
9933
|
+
};
|
|
9934
|
+
"connectedApps.destroy": {
|
|
9935
|
+
parameters: {
|
|
9936
|
+
query?: never;
|
|
9937
|
+
header?: never;
|
|
9938
|
+
path: {
|
|
9939
|
+
authorizationId: number;
|
|
9940
|
+
};
|
|
9941
|
+
cookie?: never;
|
|
9942
|
+
};
|
|
9943
|
+
requestBody?: never;
|
|
9944
|
+
responses: {
|
|
9945
|
+
200: {
|
|
9946
|
+
headers: {
|
|
9947
|
+
[name: string]: unknown;
|
|
9948
|
+
};
|
|
9949
|
+
content: {
|
|
9950
|
+
"application/json": {
|
|
9951
|
+
message: string;
|
|
9952
|
+
revoked_tokens: number;
|
|
9953
|
+
};
|
|
9954
|
+
};
|
|
9955
|
+
};
|
|
9956
|
+
};
|
|
9957
|
+
};
|
|
9768
9958
|
"contact.index": {
|
|
9769
9959
|
parameters: {
|
|
9770
9960
|
query: {
|
|
@@ -10264,7 +10454,7 @@ export interface operations {
|
|
|
10264
10454
|
"customers.index": {
|
|
10265
10455
|
parameters: {
|
|
10266
10456
|
query?: {
|
|
10267
|
-
/** @description Con `summary`, cada fila trae solo los campos del listado: nombre, contacto, NIF, saldo pendiente neto en
|
|
10457
|
+
/** @description Con `summary`, cada fila trae solo los campos del listado: nombre, contacto, NIF, saldo pendiente neto en subunidades y fechas — sin direcciones, campos personalizados, empresa, moneda ni método de pago, y sin el avatar (que cuesta una consulta por fila). Pensado para índices y para recuentos que solo leen el `meta`; la ficha completa sigue en el detalle y en el índice sin este parámetro. */
|
|
10268
10458
|
view?: "summary";
|
|
10269
10459
|
/** @description Devuelve solo el recurso que lleve esta referencia externa. El alcance es el client OAuth del token: cada integrador consulta las suyas y nunca ve las de otro. Combinado con la escritura de `external_ref`, es el find-or-create sin mantener ningún mapeo local. */
|
|
10270
10460
|
external_ref?: string;
|
|
@@ -11145,7 +11335,7 @@ export interface operations {
|
|
|
11145
11335
|
"estimates.index": {
|
|
11146
11336
|
parameters: {
|
|
11147
11337
|
query?: {
|
|
11148
|
-
/** @description Con `summary`, cada fila trae solo los campos del listado: fechas, número, estado, importes en
|
|
11338
|
+
/** @description Con `summary`, cada fila trae solo los campos del listado: fechas, número, estado, importes en subunidades, el cliente reducido a `{id, name, email, phone}` y la URL del PDF — sin líneas, impuestos, empresa ni moneda. Pensado para índices y para recuentos que solo leen el `meta`; el documento completo sigue en el detalle y en el índice sin este parámetro. */
|
|
11149
11339
|
view?: "summary";
|
|
11150
11340
|
/** @description Devuelve solo el recurso que lleve esta referencia externa. El alcance es el client OAuth del token: cada integrador consulta las suyas y nunca ve las de otro. Combinado con la escritura de `external_ref`, es el find-or-create sin mantener ningún mapeo local. */
|
|
11151
11341
|
external_ref?: string;
|
|
@@ -12964,7 +13154,7 @@ export interface operations {
|
|
|
12964
13154
|
parameters: {
|
|
12965
13155
|
query?: {
|
|
12966
13156
|
limit?: string;
|
|
12967
|
-
/** @description Con `summary`, cada fila trae solo los campos del listado: fechas, número, los tres ejes de estado (documento, cobro y AEAT), importes en
|
|
13157
|
+
/** @description Con `summary`, cada fila trae solo los campos del listado: fechas, número, los tres ejes de estado (documento, cobro y AEAT), importes en subunidades —incluidos los netos de rectificativas—, el cliente reducido a `{id, name, email, phone}` y la URL del PDF; sin líneas, impuestos, pagos, empresa ni la factura rectificada. Pensado para índices y para recuentos que solo leen el `meta`; el documento completo sigue en el detalle y en el índice sin este parámetro. */
|
|
12968
13158
|
view?: "summary";
|
|
12969
13159
|
/** @description Devuelve solo el recurso que lleve esta referencia externa. El alcance es el client OAuth del token: cada integrador consulta las suyas y nunca ve las de otro. Combinado con la escritura de `external_ref`, es el find-or-create sin mantener ningún mapeo local. */
|
|
12970
13160
|
external_ref?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -37,8 +37,21 @@ export declare const SCOPES: {
|
|
|
37
37
|
readonly reportsRead: "reports:read";
|
|
38
38
|
/** Leer la configuración de la empresa (impuestos, preferencias, series). */
|
|
39
39
|
readonly settingsRead: "settings:read";
|
|
40
|
+
/**
|
|
41
|
+
* Configurar la empresa: impuestos, preferencias, campos personalizados y el
|
|
42
|
+
* perfil del propio usuario (`PUT /me`). Ojo con ese último: cambiar el
|
|
43
|
+
* correo o la contraseña exige además `current_password`, que es del usuario
|
|
44
|
+
* y no tuya.
|
|
45
|
+
*/
|
|
46
|
+
readonly settingsWrite: "settings:write";
|
|
47
|
+
/** Cerrar y reabrir los trimestres fiscales del tenant. */
|
|
48
|
+
readonly reportsWrite: "reports:write";
|
|
40
49
|
/** Ver la tienda de módulos y qué tiene contratado el tenant. */
|
|
41
50
|
readonly storeRead: "store:read";
|
|
51
|
+
/** Instalar módulos de la tienda en el tenant. */
|
|
52
|
+
readonly storeWrite: "store:write";
|
|
53
|
+
/** Leer documentos con IA (OCR de gastos y de facturas recibidas). */
|
|
54
|
+
readonly ocrWrite: "ocr:write";
|
|
42
55
|
/** Leer la gestión de personal: empleados, ausencias, fichajes, calendarios. */
|
|
43
56
|
readonly hrRead: "hr:read";
|
|
44
57
|
/** Gestionar el personal: altas, ausencias, correcciones de fichaje, horarios. */
|
package/dist/index.js
CHANGED
|
@@ -33,8 +33,21 @@ export const SCOPES = {
|
|
|
33
33
|
reportsRead: 'reports:read',
|
|
34
34
|
/** Leer la configuración de la empresa (impuestos, preferencias, series). */
|
|
35
35
|
settingsRead: 'settings:read',
|
|
36
|
+
/**
|
|
37
|
+
* Configurar la empresa: impuestos, preferencias, campos personalizados y el
|
|
38
|
+
* perfil del propio usuario (`PUT /me`). Ojo con ese último: cambiar el
|
|
39
|
+
* correo o la contraseña exige además `current_password`, que es del usuario
|
|
40
|
+
* y no tuya.
|
|
41
|
+
*/
|
|
42
|
+
settingsWrite: 'settings:write',
|
|
43
|
+
/** Cerrar y reabrir los trimestres fiscales del tenant. */
|
|
44
|
+
reportsWrite: 'reports:write',
|
|
36
45
|
/** Ver la tienda de módulos y qué tiene contratado el tenant. */
|
|
37
46
|
storeRead: 'store:read',
|
|
47
|
+
/** Instalar módulos de la tienda en el tenant. */
|
|
48
|
+
storeWrite: 'store:write',
|
|
49
|
+
/** Leer documentos con IA (OCR de gastos y de facturas recibidas). */
|
|
50
|
+
ocrWrite: 'ocr:write',
|
|
38
51
|
/** Leer la gestión de personal: empleados, ausencias, fichajes, calendarios. */
|
|
39
52
|
hrRead: 'hr:read',
|
|
40
53
|
/** Gestionar el personal: altas, ausencias, correcciones de fichaje, horarios. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pimia/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Cliente TypeScript de la API de Pimia para apps de partner: OAuth con PKCE, rotación de refresh persistida, reintentos de rate limit y tipos generados del OpenAPI.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Pimia (https://pimia.es)",
|