tupay 0.14.0 → 0.16.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.
Files changed (75) hide show
  1. package/dist/cjs/client.d.ts +27 -0
  2. package/dist/cjs/client.d.ts.map +1 -1
  3. package/dist/cjs/client.js +6 -2
  4. package/dist/cjs/client.js.map +1 -1
  5. package/dist/cjs/index.d.ts +40 -0
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +53 -1
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/resources/accounts.d.ts +93 -0
  10. package/dist/cjs/resources/accounts.d.ts.map +1 -0
  11. package/dist/cjs/resources/accounts.js +106 -0
  12. package/dist/cjs/resources/accounts.js.map +1 -0
  13. package/dist/cjs/resources/balance-transactions.d.ts +44 -0
  14. package/dist/cjs/resources/balance-transactions.d.ts.map +1 -0
  15. package/dist/cjs/resources/balance-transactions.js +40 -0
  16. package/dist/cjs/resources/balance-transactions.js.map +1 -0
  17. package/dist/cjs/resources/balance.d.ts +21 -0
  18. package/dist/cjs/resources/balance.d.ts.map +1 -0
  19. package/dist/cjs/resources/balance.js +31 -0
  20. package/dist/cjs/resources/balance.js.map +1 -0
  21. package/dist/cjs/resources/disputes.d.ts +71 -0
  22. package/dist/cjs/resources/disputes.d.ts.map +1 -0
  23. package/dist/cjs/resources/disputes.js +89 -0
  24. package/dist/cjs/resources/disputes.js.map +1 -0
  25. package/dist/cjs/resources/invoices.d.ts +20 -0
  26. package/dist/cjs/resources/invoices.d.ts.map +1 -1
  27. package/dist/cjs/resources/invoices.js +28 -0
  28. package/dist/cjs/resources/invoices.js.map +1 -1
  29. package/dist/cjs/resources/payment-intents.d.ts +30 -0
  30. package/dist/cjs/resources/payment-intents.d.ts.map +1 -1
  31. package/dist/cjs/resources/payment-intents.js.map +1 -1
  32. package/dist/cjs/resources/payouts.d.ts +53 -0
  33. package/dist/cjs/resources/payouts.d.ts.map +1 -0
  34. package/dist/cjs/resources/payouts.js +72 -0
  35. package/dist/cjs/resources/payouts.js.map +1 -0
  36. package/dist/cjs/types.d.ts +271 -0
  37. package/dist/cjs/types.d.ts.map +1 -1
  38. package/dist/esm/client.d.ts +27 -0
  39. package/dist/esm/client.d.ts.map +1 -1
  40. package/dist/esm/client.js +6 -2
  41. package/dist/esm/client.js.map +1 -1
  42. package/dist/esm/index.d.ts +40 -0
  43. package/dist/esm/index.d.ts.map +1 -1
  44. package/dist/esm/index.js +47 -0
  45. package/dist/esm/index.js.map +1 -1
  46. package/dist/esm/resources/accounts.d.ts +93 -0
  47. package/dist/esm/resources/accounts.d.ts.map +1 -0
  48. package/dist/esm/resources/accounts.js +102 -0
  49. package/dist/esm/resources/accounts.js.map +1 -0
  50. package/dist/esm/resources/balance-transactions.d.ts +44 -0
  51. package/dist/esm/resources/balance-transactions.d.ts.map +1 -0
  52. package/dist/esm/resources/balance-transactions.js +36 -0
  53. package/dist/esm/resources/balance-transactions.js.map +1 -0
  54. package/dist/esm/resources/balance.d.ts +21 -0
  55. package/dist/esm/resources/balance.d.ts.map +1 -0
  56. package/dist/esm/resources/balance.js +27 -0
  57. package/dist/esm/resources/balance.js.map +1 -0
  58. package/dist/esm/resources/disputes.d.ts +71 -0
  59. package/dist/esm/resources/disputes.d.ts.map +1 -0
  60. package/dist/esm/resources/disputes.js +85 -0
  61. package/dist/esm/resources/disputes.js.map +1 -0
  62. package/dist/esm/resources/invoices.d.ts +20 -0
  63. package/dist/esm/resources/invoices.d.ts.map +1 -1
  64. package/dist/esm/resources/invoices.js +28 -0
  65. package/dist/esm/resources/invoices.js.map +1 -1
  66. package/dist/esm/resources/payment-intents.d.ts +30 -0
  67. package/dist/esm/resources/payment-intents.d.ts.map +1 -1
  68. package/dist/esm/resources/payment-intents.js.map +1 -1
  69. package/dist/esm/resources/payouts.d.ts +53 -0
  70. package/dist/esm/resources/payouts.d.ts.map +1 -0
  71. package/dist/esm/resources/payouts.js +68 -0
  72. package/dist/esm/resources/payouts.js.map +1 -0
  73. package/dist/esm/types.d.ts +271 -0
  74. package/dist/esm/types.d.ts.map +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1,93 @@
1
+ import { TupayClient } from '../client.js';
2
+ import { type ListParams } from '../liste.js';
3
+ import type { Account, AccountBalance, ListResult, Payout, TgcRate } from '../types.js';
4
+ export interface CreateAccountParams {
5
+ /** Nom commercial du vendeur. */
6
+ name: string;
7
+ /**
8
+ * L'identité du **vendeur**, pas la vôtre. Un email déjà utilisé par
9
+ * un compte Tupay est refusé.
10
+ */
11
+ email: string;
12
+ /**
13
+ * Le régime de TGC du vendeur. Défaut `exempt`.
14
+ *
15
+ * ⚠️ Le sien, pas le vôtre. Une pension exemptée et un loueur à 16 %
16
+ * sous la même plateforme n'ont pas la même TGC, et elle est figée sur
17
+ * chaque écriture de solde : un taux faux ne se rattrape pas.
18
+ */
19
+ tgcRate?: TgcRate;
20
+ /**
21
+ * Coordonnées bancaires XPF du vendeur. Facultatives à la création —
22
+ * tant qu'elles manquent, `payoutsEnabled` est faux.
23
+ */
24
+ ibanXpf?: string;
25
+ /** Omise, le SDK génère un UUID v4 — la requête devient rejouable. */
26
+ idempotencyKey?: string;
27
+ }
28
+ /**
29
+ * Connect — plusieurs vendeurs sous un même toit.
30
+ *
31
+ * ```ts
32
+ * const vendeur = await tupay.accounts.create({
33
+ * name: 'Pension Tiare',
34
+ * email: 'pension.tiare@exemple.pf',
35
+ * tgcRate: '10',
36
+ * })
37
+ * vendeur.chargesEnabled // false : la vérification n'a pas eu lieu
38
+ * vendeur.requirements // ['kyb.validation', 'bank_account.iban_xpf']
39
+ * ```
40
+ *
41
+ * Puis encaissez pour lui :
42
+ *
43
+ * ```ts
44
+ * await tupay.paymentIntents.create({
45
+ * amountXpf: 4500,
46
+ * onBehalfOf: vendeur.id,
47
+ * })
48
+ * ```
49
+ *
50
+ * **Un compte connecté est un marchand à part entière.** Son solde, ses
51
+ * écritures, ses virements et ses litiges sont les mêmes objets que ceux
52
+ * de n'importe quel compte — il n'y a pas de version diminuée du
53
+ * produit.
54
+ *
55
+ * ⚠️ **Un seul étage** : un compte connecté ne peut pas avoir ses
56
+ * propres comptes connectés.
57
+ */
58
+ export declare class Accounts {
59
+ private readonly client;
60
+ constructor(client: TupayClient);
61
+ create(params: CreateAccountParams): Promise<Account>;
62
+ retrieve(id: string): Promise<Account>;
63
+ /**
64
+ * Vos vendeurs, le plus récent d'abord.
65
+ *
66
+ * Un marchand ordinaire reçoit une liste vide, et c'est juste : « être
67
+ * une plateforme » n'est pas un type de compte, c'est le fait d'en
68
+ * avoir créé.
69
+ */
70
+ /**
71
+ * Le solde d'un de vos vendeurs.
72
+ *
73
+ * **Son solde n'est pas le vôtre**, ni celui de vos autres vendeurs :
74
+ * la somme est calculée dans le contexte de ce compte.
75
+ *
76
+ * Un compte connecté n'a ni clé API ni tableau de bord — vous êtes
77
+ * donc le seul chemin par lequel ce solde peut être montré à qui il
78
+ * appartient.
79
+ *
80
+ * ⚠️ Le solde rendu est celui du **mode de votre clé**.
81
+ */
82
+ retrieveBalance(id: string): Promise<AccountBalance>;
83
+ /**
84
+ * Les virements d'un de vos vendeurs.
85
+ *
86
+ * Ils partent vers **ses** coordonnées bancaires, pas les vôtres.
87
+ * Vous en lisez les quatre derniers caractères, jamais l'IBAN
88
+ * complet.
89
+ */
90
+ listPayouts(id: string, params?: ListParams): Promise<ListResult<Payout>>;
91
+ list(): Promise<ListResult<Account>>;
92
+ }
93
+ //# sourceMappingURL=accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../../src/resources/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,UAAU,EACV,MAAM,EACN,OAAO,EACR,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAWrD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ5C;;;;;;OAMG;IACH;;;;;;;;;;;OAWG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQ1D;;;;;;OAMG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAU7E,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;CAQ3C"}
@@ -0,0 +1,102 @@
1
+ import { TupayClient } from '../client.js';
2
+ import { normaliserListe, parametresListe, } from '../liste.js';
3
+ /**
4
+ * Connect — plusieurs vendeurs sous un même toit.
5
+ *
6
+ * ```ts
7
+ * const vendeur = await tupay.accounts.create({
8
+ * name: 'Pension Tiare',
9
+ * email: 'pension.tiare@exemple.pf',
10
+ * tgcRate: '10',
11
+ * })
12
+ * vendeur.chargesEnabled // false : la vérification n'a pas eu lieu
13
+ * vendeur.requirements // ['kyb.validation', 'bank_account.iban_xpf']
14
+ * ```
15
+ *
16
+ * Puis encaissez pour lui :
17
+ *
18
+ * ```ts
19
+ * await tupay.paymentIntents.create({
20
+ * amountXpf: 4500,
21
+ * onBehalfOf: vendeur.id,
22
+ * })
23
+ * ```
24
+ *
25
+ * **Un compte connecté est un marchand à part entière.** Son solde, ses
26
+ * écritures, ses virements et ses litiges sont les mêmes objets que ceux
27
+ * de n'importe quel compte — il n'y a pas de version diminuée du
28
+ * produit.
29
+ *
30
+ * ⚠️ **Un seul étage** : un compte connecté ne peut pas avoir ses
31
+ * propres comptes connectés.
32
+ */
33
+ export class Accounts {
34
+ client;
35
+ constructor(client) {
36
+ this.client = client;
37
+ }
38
+ async create(params) {
39
+ const { idempotencyKey, ...body } = params;
40
+ const { data } = await this.client.request({
41
+ method: 'POST',
42
+ path: '/accounts',
43
+ body,
44
+ idempotencyKey: idempotencyKey ?? TupayClient.idempotencyKey(),
45
+ });
46
+ return data;
47
+ }
48
+ async retrieve(id) {
49
+ const { data } = await this.client.request({
50
+ method: 'GET',
51
+ path: `/accounts/${encodeURIComponent(id)}`,
52
+ });
53
+ return data;
54
+ }
55
+ /**
56
+ * Vos vendeurs, le plus récent d'abord.
57
+ *
58
+ * Un marchand ordinaire reçoit une liste vide, et c'est juste : « être
59
+ * une plateforme » n'est pas un type de compte, c'est le fait d'en
60
+ * avoir créé.
61
+ */
62
+ /**
63
+ * Le solde d'un de vos vendeurs.
64
+ *
65
+ * **Son solde n'est pas le vôtre**, ni celui de vos autres vendeurs :
66
+ * la somme est calculée dans le contexte de ce compte.
67
+ *
68
+ * Un compte connecté n'a ni clé API ni tableau de bord — vous êtes
69
+ * donc le seul chemin par lequel ce solde peut être montré à qui il
70
+ * appartient.
71
+ *
72
+ * ⚠️ Le solde rendu est celui du **mode de votre clé**.
73
+ */
74
+ async retrieveBalance(id) {
75
+ const { data } = await this.client.request({
76
+ method: 'GET',
77
+ path: `/accounts/${encodeURIComponent(id)}/balance`,
78
+ });
79
+ return data;
80
+ }
81
+ /**
82
+ * Les virements d'un de vos vendeurs.
83
+ *
84
+ * Ils partent vers **ses** coordonnées bancaires, pas les vôtres.
85
+ * Vous en lisez les quatre derniers caractères, jamais l'IBAN
86
+ * complet.
87
+ */
88
+ async listPayouts(id, params = {}) {
89
+ return normaliserListe(await this.client.request({
90
+ method: 'GET',
91
+ path: `/accounts/${encodeURIComponent(id)}/payouts`,
92
+ query: parametresListe(params),
93
+ }));
94
+ }
95
+ async list() {
96
+ return normaliserListe(await this.client.request({
97
+ method: 'GET',
98
+ path: '/accounts',
99
+ }));
100
+ }
101
+ }
102
+ //# sourceMappingURL=accounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../src/resources/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EACL,eAAe,EACf,eAAe,GAGhB,MAAM,aAAa,CAAA;AAkCpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,MAA2B;QACtC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,WAAW;YACjB,IAAI;YACJ,cAAc,EAAE,cAAc,IAAI,WAAW,CAAC,cAAc,EAAE;SAC/D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAC5C,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACH;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA2B;YACnE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,UAAU;SACpD,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,SAAqB,EAAE;QACnD,OAAO,eAAe,CACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAqB;YAC5C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,UAAU;YACnD,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC;SAC/B,CAAC,CACH,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,eAAe,CACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB;YAC7C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;SAClB,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,44 @@
1
+ import type { TupayClient } from '../client.js';
2
+ import { type ListParams } from '../liste.js';
3
+ import type { BalanceTransaction, BalanceTransactionType, ListResult } from '../types.js';
4
+ export interface ListBalanceTransactionsParams extends ListParams {
5
+ /** N'obtenir qu'un type de mouvement. */
6
+ type?: BalanceTransactionType;
7
+ /**
8
+ * `true` pour ce qui est encaissable, `false` pour ce qui attend.
9
+ *
10
+ * La bascule est une comparaison de dates, pas un statut : rien n'a
11
+ * besoin de tourner pour qu'elle ait lieu.
12
+ */
13
+ available?: boolean;
14
+ /**
15
+ * N'obtenir que les écritures **soldées par ce virement** — de quoi
16
+ * il est composé. Leur somme vaut son montant.
17
+ *
18
+ * À ne pas confondre avec `payoutId` sur une écriture, qui désigne la
19
+ * ligne de **contrepartie** du virement.
20
+ */
21
+ payout?: string;
22
+ }
23
+ /**
24
+ * Le journal de votre solde : une ligne par mouvement.
25
+ *
26
+ * ```ts
27
+ * const { data } = await tupay.balanceTransactions.list({ available: false })
28
+ * data[0].grossXpf // ce que le client a payé
29
+ * data[0].feeXpf // notre commission
30
+ * data[0].netXpf // ce qui rejoint votre solde
31
+ * ```
32
+ *
33
+ * La somme des `netXpf` est exactement votre solde.
34
+ *
35
+ * ⚠️ **Aucune méthode pour créer, modifier ou supprimer.** Ce n'est pas
36
+ * un oubli : une écriture comptable est immuable. Une correction s'écrit
37
+ * en ajustement, une ligne de plus qui laisse la première visible.
38
+ */
39
+ export declare class BalanceTransactions {
40
+ private readonly client;
41
+ constructor(client: TupayClient);
42
+ list(params?: ListBalanceTransactionsParams): Promise<ListResult<BalanceTransaction>>;
43
+ }
44
+ //# sourceMappingURL=balance-transactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance-transactions.d.ts","sourceRoot":"","sources":["../../../src/resources/balance-transactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAqD,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AAChG,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAEzF,MAAM,WAAW,6BAA8B,SAAQ,UAAU;IAC/D,yCAAyC;IACzC,IAAI,CAAC,EAAE,sBAAsB,CAAA;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,IAAI,CACR,MAAM,GAAE,6BAAkC,GACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;CAc3C"}
@@ -0,0 +1,36 @@
1
+ import { normaliserListe, parametresListe } from '../liste.js';
2
+ /**
3
+ * Le journal de votre solde : une ligne par mouvement.
4
+ *
5
+ * ```ts
6
+ * const { data } = await tupay.balanceTransactions.list({ available: false })
7
+ * data[0].grossXpf // ce que le client a payé
8
+ * data[0].feeXpf // notre commission
9
+ * data[0].netXpf // ce qui rejoint votre solde
10
+ * ```
11
+ *
12
+ * La somme des `netXpf` est exactement votre solde.
13
+ *
14
+ * ⚠️ **Aucune méthode pour créer, modifier ou supprimer.** Ce n'est pas
15
+ * un oubli : une écriture comptable est immuable. Une correction s'écrit
16
+ * en ajustement, une ligne de plus qui laisse la première visible.
17
+ */
18
+ export class BalanceTransactions {
19
+ client;
20
+ constructor(client) {
21
+ this.client = client;
22
+ }
23
+ async list(params = {}) {
24
+ return normaliserListe(await this.client.request({
25
+ method: 'GET',
26
+ path: '/balance-transactions',
27
+ query: {
28
+ ...parametresListe(params),
29
+ type: params.type,
30
+ available: params.available,
31
+ payout: params.payout,
32
+ },
33
+ }));
34
+ }
35
+ }
36
+ //# sourceMappingURL=balance-transactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance-transactions.js","sourceRoot":"","sources":["../../../src/resources/balance-transactions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAoC,MAAM,aAAa,CAAA;AAuBhG;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,IAAI,CACR,SAAwC,EAAE;QAE1C,OAAO,eAAe,CACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAiC;YACxD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,uBAAuB;YAC7B,KAAK,EAAE;gBACL,GAAG,eAAe,CAAC,MAAM,CAAC;gBAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import type { TupayClient } from '../client.js';
2
+ import type { Balance } from '../types.js';
3
+ /**
4
+ * Votre solde : ce que vous avez, et ce qui arrive.
5
+ *
6
+ * ```ts
7
+ * const solde = await tupay.balance.retrieve()
8
+ * solde.available.amountXpf // encaissable, commission déduite
9
+ * solde.pending.amountXpf // pas encore
10
+ * solde.nextAvailableAt // quand la plus proche bascule
11
+ * ```
12
+ *
13
+ * Le solde n'a ni identifiant ni date de création : c'est un état
14
+ * instantané, pas un objet stocké. Ce sont les écritures qui en ont.
15
+ */
16
+ export declare class BalanceResource {
17
+ private readonly client;
18
+ constructor(client: TupayClient);
19
+ retrieve(): Promise<Balance>;
20
+ }
21
+ //# sourceMappingURL=balance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../src/resources/balance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;CAOnC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Votre solde : ce que vous avez, et ce qui arrive.
3
+ *
4
+ * ```ts
5
+ * const solde = await tupay.balance.retrieve()
6
+ * solde.available.amountXpf // encaissable, commission déduite
7
+ * solde.pending.amountXpf // pas encore
8
+ * solde.nextAvailableAt // quand la plus proche bascule
9
+ * ```
10
+ *
11
+ * Le solde n'a ni identifiant ni date de création : c'est un état
12
+ * instantané, pas un objet stocké. Ce sont les écritures qui en ont.
13
+ */
14
+ export class BalanceResource {
15
+ client;
16
+ constructor(client) {
17
+ this.client = client;
18
+ }
19
+ async retrieve() {
20
+ const { data } = await this.client.request({
21
+ method: 'GET',
22
+ path: '/balance',
23
+ });
24
+ return data;
25
+ }
26
+ }
27
+ //# sourceMappingURL=balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/resources/balance.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,QAAQ;QACZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;SACjB,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -0,0 +1,71 @@
1
+ import { type ListParams } from '../liste.js';
2
+ import { TupayClient } from '../client.js';
3
+ import type { Dispute, DisputeEvidence, DisputeStatus, ListResult } from '../types.js';
4
+ export interface ListDisputesParams extends ListParams {
5
+ status?: DisputeStatus;
6
+ }
7
+ export interface SubmitDisputeEvidenceParams {
8
+ /**
9
+ * Ce que vous affirmez, en texte libre (5 000 signes au plus).
10
+ * Décrivez la commande, la livraison, et vos échanges avec le client.
11
+ */
12
+ explanation: string;
13
+ /** Omise, le SDK génère un UUID v4 — la requête devient rejouable. */
14
+ idempotencyKey?: string;
15
+ }
16
+ /**
17
+ * Les contestations ouvertes par vos clients auprès de leur banque.
18
+ *
19
+ * ```ts
20
+ * const { data } = await tupay.disputes.list({ status: 'needs_response' })
21
+ * data[0].evidenceDueBy // la date limite
22
+ * data[0].responseStillPossible // est-il encore temps ?
23
+ * ```
24
+ *
25
+ * ⚠️ **Un litige non traité est perdu par défaut.** Pas rejeté, pas mis
26
+ * en attente : perdu, avec l'argent qui part. Branchez
27
+ * `dispute.created` et `dispute.reminder`.
28
+ *
29
+ * Aucune méthode pour en créer : un litige vient du réseau. En mode
30
+ * test, `POST /test/simulate` avec `disputeReason` en ouvre un.
31
+ *
32
+ * Ce que vous POUVEZ écrire, en revanche, c'est votre réponse :
33
+ * `submitEvidence()`. C'est la seule chose d'un litige qui vous
34
+ * appartienne.
35
+ */
36
+ export declare class Disputes {
37
+ private readonly client;
38
+ constructor(client: TupayClient);
39
+ retrieve(id: string): Promise<Dispute>;
40
+ list(params?: ListDisputesParams): Promise<ListResult<Dispute>>;
41
+ /**
42
+ * Répond à un litige, et le fait passer en examen.
43
+ *
44
+ * ```ts
45
+ * const preuve = await tupay.disputes.submitEvidence(dp.id, {
46
+ * explanation: 'Commande livrée le 12/09, signée par le client.',
47
+ * })
48
+ * preuve.dispute.status // 'under_review'
49
+ * ```
50
+ *
51
+ * ⚠️ **Avant `evidenceDueBy`, jamais après.** Passée la date limite,
52
+ * l'appel rend `409` et cite la date : le litige est perdu par défaut,
53
+ * et le réseau n'accepte plus rien.
54
+ *
55
+ * Vous pouvez soumettre plusieurs fois tant que l'échéance n'est pas
56
+ * passée : chaque appel AJOUTE au journal, il n'écrase pas le
57
+ * précédent.
58
+ */
59
+ submitEvidence(id: string, params: SubmitDisputeEvidenceParams): Promise<DisputeEvidence & {
60
+ dispute: Dispute;
61
+ }>;
62
+ /**
63
+ * Ce que vous avez transmis sur ce litige, le plus récent d'abord.
64
+ *
65
+ * Rien ne s'y écrase : vous relisez exactement ce qui est parti, et
66
+ * quand. Un litige sans réponse rend une liste vide ; un litige qui
67
+ * n'existe pas lève une erreur `404`.
68
+ */
69
+ listEvidence(id: string, params?: ListParams): Promise<ListResult<DisputeEvidence>>;
70
+ }
71
+ //# sourceMappingURL=disputes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disputes.d.ts","sourceRoot":"","sources":["../../../src/resources/disputes.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EACV,OAAO,EACP,eAAe,EACf,aAAa,EACb,UAAU,EACX,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQtC,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAUzE;;;;;;;;;;;;;;;;;OAiBG;IACG,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,eAAe,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAalD;;;;;;OAMG;IACG,YAAY,CAChB,EAAE,EAAE,MAAM,EACV,MAAM,GAAE,UAAe,GACtB,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;CASxC"}
@@ -0,0 +1,85 @@
1
+ import { normaliserListe, parametresListe, } from '../liste.js';
2
+ import { TupayClient } from '../client.js';
3
+ /**
4
+ * Les contestations ouvertes par vos clients auprès de leur banque.
5
+ *
6
+ * ```ts
7
+ * const { data } = await tupay.disputes.list({ status: 'needs_response' })
8
+ * data[0].evidenceDueBy // la date limite
9
+ * data[0].responseStillPossible // est-il encore temps ?
10
+ * ```
11
+ *
12
+ * ⚠️ **Un litige non traité est perdu par défaut.** Pas rejeté, pas mis
13
+ * en attente : perdu, avec l'argent qui part. Branchez
14
+ * `dispute.created` et `dispute.reminder`.
15
+ *
16
+ * Aucune méthode pour en créer : un litige vient du réseau. En mode
17
+ * test, `POST /test/simulate` avec `disputeReason` en ouvre un.
18
+ *
19
+ * Ce que vous POUVEZ écrire, en revanche, c'est votre réponse :
20
+ * `submitEvidence()`. C'est la seule chose d'un litige qui vous
21
+ * appartienne.
22
+ */
23
+ export class Disputes {
24
+ client;
25
+ constructor(client) {
26
+ this.client = client;
27
+ }
28
+ async retrieve(id) {
29
+ const { data } = await this.client.request({
30
+ method: 'GET',
31
+ path: `/disputes/${encodeURIComponent(id)}`,
32
+ });
33
+ return data;
34
+ }
35
+ async list(params = {}) {
36
+ return normaliserListe(await this.client.request({
37
+ method: 'GET',
38
+ path: '/disputes',
39
+ query: { ...parametresListe(params), status: params.status },
40
+ }));
41
+ }
42
+ /**
43
+ * Répond à un litige, et le fait passer en examen.
44
+ *
45
+ * ```ts
46
+ * const preuve = await tupay.disputes.submitEvidence(dp.id, {
47
+ * explanation: 'Commande livrée le 12/09, signée par le client.',
48
+ * })
49
+ * preuve.dispute.status // 'under_review'
50
+ * ```
51
+ *
52
+ * ⚠️ **Avant `evidenceDueBy`, jamais après.** Passée la date limite,
53
+ * l'appel rend `409` et cite la date : le litige est perdu par défaut,
54
+ * et le réseau n'accepte plus rien.
55
+ *
56
+ * Vous pouvez soumettre plusieurs fois tant que l'échéance n'est pas
57
+ * passée : chaque appel AJOUTE au journal, il n'écrase pas le
58
+ * précédent.
59
+ */
60
+ async submitEvidence(id, params) {
61
+ const { idempotencyKey, ...body } = params;
62
+ const { data } = await this.client.request({
63
+ method: 'POST',
64
+ path: `/disputes/${encodeURIComponent(id)}/evidence`,
65
+ body,
66
+ idempotencyKey: idempotencyKey ?? TupayClient.idempotencyKey(),
67
+ });
68
+ return data;
69
+ }
70
+ /**
71
+ * Ce que vous avez transmis sur ce litige, le plus récent d'abord.
72
+ *
73
+ * Rien ne s'y écrase : vous relisez exactement ce qui est parti, et
74
+ * quand. Un litige sans réponse rend une liste vide ; un litige qui
75
+ * n'existe pas lève une erreur `404`.
76
+ */
77
+ async listEvidence(id, params = {}) {
78
+ return normaliserListe(await this.client.request({
79
+ method: 'GET',
80
+ path: `/disputes/${encodeURIComponent(id)}/evidence`,
81
+ query: parametresListe(params),
82
+ }));
83
+ }
84
+ }
85
+ //# sourceMappingURL=disputes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disputes.js","sourceRoot":"","sources":["../../../src/resources/disputes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,eAAe,GAGhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAsB1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAC5C,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAA6B,EAAE;QACxC,OAAO,eAAe,CACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB;YAC7C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;SAC7D,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,cAAc,CAClB,EAAU,EACV,MAAmC;QAEnC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAEvC;YACD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,WAAW;YACpD,IAAI;YACJ,cAAc,EAAE,cAAc,IAAI,WAAW,CAAC,cAAc,EAAE;SAC/D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAChB,EAAU,EACV,SAAqB,EAAE;QAEvB,OAAO,eAAe,CACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA8B;YACrD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,WAAW;YACpD,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC;SAC/B,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -36,6 +36,26 @@ export declare class Invoices {
36
36
  * Une facture déjà réglée lève une `TupayConflictError`.
37
37
  */
38
38
  pay(id: string): Promise<InvoicePaymentAttempt>;
39
+ /**
40
+ * La facture telle qu'on l'imprime : un document, pas du JSON.
41
+ *
42
+ * Le rendu est en français, montants en francs pacifiques entiers,
43
+ * avec la mention de la TGC appliquée. Il porte le `number` de la
44
+ * facture — celui qu'on cite à un comptable — et non son identifiant
45
+ * technique.
46
+ *
47
+ * ```ts
48
+ * const html = await tupay.invoices.document(facture.id)
49
+ * // → l'ouvrir dans un navigateur, puis « Imprimer → Enregistrer en PDF »
50
+ * ```
51
+ *
52
+ * Une facture de test se voit : son numéro commence par `TEST-`, et le
53
+ * document s'ouvre sur « document sans valeur comptable ».
54
+ *
55
+ * @param format `html` (défaut) pour le document imprimable, `text`
56
+ * pour la même facture en texte brut — une pièce jointe, un journal.
57
+ */
58
+ document(id: string, format?: 'html' | 'text'): Promise<string>;
39
59
  list(params?: ListInvoicesParams): Promise<ListResult<Invoice>>;
40
60
  }
41
61
  //# sourceMappingURL=invoices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../../src/resources/invoices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EACV,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,UAAU,EACX,MAAM,aAAa,CAAA;AACpB,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;GAQG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ5C;;;;;;;;;;;;;;;OAeG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAS/C,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;CAc1E"}
1
+ {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../../../src/resources/invoices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EACV,OAAO,EACP,qBAAqB,EACrB,aAAa,EACb,UAAU,EACX,MAAM,aAAa,CAAA;AACpB,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,aAAa,CAAA;AAEpB,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;GAQG;AACH,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ5C;;;;;;;;;;;;;;;OAeG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IASrD;;;;;;;;;;;;;;;;;;OAkBG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,MAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvE,IAAI,CAAC,MAAM,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;CAc1E"}
@@ -44,6 +44,34 @@ export class Invoices {
44
44
  });
45
45
  return data;
46
46
  }
47
+ /**
48
+ * La facture telle qu'on l'imprime : un document, pas du JSON.
49
+ *
50
+ * Le rendu est en français, montants en francs pacifiques entiers,
51
+ * avec la mention de la TGC appliquée. Il porte le `number` de la
52
+ * facture — celui qu'on cite à un comptable — et non son identifiant
53
+ * technique.
54
+ *
55
+ * ```ts
56
+ * const html = await tupay.invoices.document(facture.id)
57
+ * // → l'ouvrir dans un navigateur, puis « Imprimer → Enregistrer en PDF »
58
+ * ```
59
+ *
60
+ * Une facture de test se voit : son numéro commence par `TEST-`, et le
61
+ * document s'ouvre sur « document sans valeur comptable ».
62
+ *
63
+ * @param format `html` (défaut) pour le document imprimable, `text`
64
+ * pour la même facture en texte brut — une pièce jointe, un journal.
65
+ */
66
+ async document(id, format = 'html') {
67
+ return this.client.request({
68
+ method: 'GET',
69
+ path: `/invoices/${encodeURIComponent(id)}/document`,
70
+ query: { format },
71
+ raw: true,
72
+ accept: format === 'text' ? 'text/plain' : 'text/html',
73
+ });
74
+ }
47
75
  async list(params = {}) {
48
76
  return normaliserListe(await this.client.request({
49
77
  method: 'GET',
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../../src/resources/invoices.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,eAAe,EACf,eAAe,GAGhB,MAAM,aAAa,CAAA;AAQpB;;;;;;;;GAQG;AACH,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAC5C,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAkC;YAC1E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,MAAM;YAC/C,IAAI,EAAE,EAAE;SACT,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAA6B,EAAE;QACxC,OAAO,eAAe,CACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB;YAC7C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE;gBACL,GAAG,eAAe,CAAC,MAAM,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../../src/resources/invoices.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,eAAe,EACf,eAAe,GAGhB,MAAM,aAAa,CAAA;AAQpB;;;;;;;;GAQG;AACH,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAoB;YAC5D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE;SAC5C,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAkC;YAC1E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,MAAM;YAC/C,IAAI,EAAE,EAAE;SACT,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,SAA0B,MAAM;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAS;YACjC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,WAAW;YACpD,KAAK,EAAE,EAAE,MAAM,EAAE;YACjB,GAAG,EAAE,IAAI;YACT,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW;SACvD,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAA6B,EAAE;QACxC,OAAO,eAAe,CACpB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB;YAC7C,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE;gBACL,GAAG,eAAe,CAAC,MAAM,CAAC;gBAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC;SACF,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -40,6 +40,36 @@ export interface CreatePaymentIntentParams {
40
40
  */
41
41
  offSession?: boolean;
42
42
  metadata?: Record<string, string>;
43
+ /**
44
+ * **Encaisser pour un compte connecté** — `<uuid>` ou `acct_<uuid>`.
45
+ *
46
+ * Le paiement appartient alors au VENDEUR : son solde, ses écritures,
47
+ * ses virements, ses litiges. Vous n'êtes que celle qui a passé
48
+ * l'appel.
49
+ *
50
+ * ⚠️ En mode **live**, un compte dont la vérification d'activité n'est
51
+ * pas validée lève une erreur `account_not_ready`, dont `requirement`
52
+ * nomme ce qui manque. En mode test rien n'est bridé — branchez tout
53
+ * votre parcours avant d'avoir fait valider votre premier vendeur.
54
+ */
55
+ onBehalfOf?: string;
56
+ /**
57
+ * **La commission que vous prélevez** sur ce paiement, en francs
58
+ * entiers. Exige `onBehalfOf`.
59
+ *
60
+ * Le net va au vendeur, la commission à vous, et deux écritures
61
+ * distinctes sont créées — une dans chaque journal de solde.
62
+ *
63
+ * ⚠️ Refusée si elle dépasse le montant, et refusée aussi si,
64
+ * **commission Tupay déduite**, elle laisserait votre vendeur en
65
+ * négatif. La seconde règle est plus stricte : notre commission se
66
+ * prélève aussi, et vous ne connaissez pas le barème de votre vendeur.
67
+ *
68
+ * ⚠️ **Elle n'est pas rendue sur un remboursement.** Même règle que
69
+ * la commission Tupay : elle paie un apport d'affaires, et l'affaire
70
+ * a eu lieu.
71
+ */
72
+ applicationFeeXpf?: number;
43
73
  /**
44
74
  * Clé d'idempotence. Omise, le SDK en génère une (UUID v4) : la requête
45
75
  * devient rejouable sans risque de double débit. Fournissez la vôtre si
@@ -1 +1 @@
1
- {"version":3,"file":"payment-intents.d.ts","sourceRoot":"","sources":["../../../src/resources/payment-intents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,WAAW,yBAAyB;IACxC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;CAUxE"}
1
+ {"version":3,"file":"payment-intents.d.ts","sourceRoot":"","sources":["../../../src/resources/payment-intents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,WAAW,yBAAyB;IACxC,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;;;;;;;;;OAeG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAE1C,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;CAUxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"payment-intents.js","sourceRoot":"","sources":["../../../src/resources/payment-intents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAoD1C,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,MAAiC;QAC5C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA0B;YAClE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,kBAAkB;YACxB,IAAI;YACJ,cAAc,EAAE,cAAc,IAAI,WAAW,CAAC,cAAc,EAAE;SAC/D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"payment-intents.js","sourceRoot":"","sources":["../../../src/resources/payment-intents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAkF1C,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IAAG,CAAC;IAEpD,KAAK,CAAC,MAAM,CAAC,MAAiC;QAC5C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;QAC1C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA0B;YAClE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,kBAAkB;YACxB,IAAI;YACJ,cAAc,EAAE,cAAc,IAAI,WAAW,CAAC,cAAc,EAAE;SAC/D,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}