btrz-api-client 8.33.0 → 8.35.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 (160) hide show
  1. package/lib/client-standalone-min.js +3 -3
  2. package/lib/client.js +10 -2
  3. package/lib/endpoints/btrzpay/adyen.js +58 -0
  4. package/lib/endpoints/btrzpay/cardpointe.js +6 -3
  5. package/lib/endpoints/btrzpay/customerCards.js +19 -19
  6. package/lib/endpoints/btrzpay/customers.js +13 -13
  7. package/lib/endpoints/btrzpay/cybersource3ds.js +142 -0
  8. package/lib/endpoints/btrzpay/datalogic.js +64 -28
  9. package/lib/endpoints/btrzpay/oxxo.js +54 -28
  10. package/lib/endpoints/btrzpay/prismaTerminals.js +24 -15
  11. package/lib/endpoints/btrzpay/referenced-payments.js +4 -4
  12. package/lib/endpoints/btrzpay/square.js +8 -8
  13. package/lib/endpoints/btrzpay/stripe-terminals.js +16 -11
  14. package/lib/endpoints/btrzpay/stripe3ds.js +54 -0
  15. package/lib/endpoints/btrzpay/terminalPayments.js +19 -19
  16. package/lib/endpoints/inventory/banks.js +39 -21
  17. package/lib/endpoints/inventory/change-requests.js +59 -31
  18. package/lib/endpoints/inventory/control-classes.js +39 -20
  19. package/lib/endpoints/inventory/countries.js +25 -9
  20. package/lib/endpoints/inventory/custom-content.js +39 -21
  21. package/lib/endpoints/inventory/custom-fields.js +25 -17
  22. package/lib/endpoints/inventory/document-types.js +33 -42
  23. package/lib/endpoints/inventory/external-wallets.js +26 -20
  24. package/lib/endpoints/inventory/fees.js +19 -13
  25. package/lib/endpoints/inventory/filtered-trips.js +34 -8
  26. package/lib/endpoints/inventory/financing-costs.js +19 -14
  27. package/lib/endpoints/inventory/garages.js +19 -14
  28. package/lib/endpoints/inventory/getnet-terminals.js +20 -15
  29. package/lib/endpoints/inventory/gift-certificate-definitions.js +10 -5
  30. package/lib/endpoints/inventory/holidays.js +158 -0
  31. package/lib/endpoints/inventory/insurances.js +17 -13
  32. package/lib/endpoints/inventory/items.js +13 -9
  33. package/lib/endpoints/inventory/labels.js +16 -11
  34. package/lib/endpoints/inventory/marital-status.js +16 -11
  35. package/lib/endpoints/inventory/marketplace-modifiers.js +16 -11
  36. package/lib/endpoints/inventory/mit-terminal-settings.js +15 -10
  37. package/lib/endpoints/inventory/mit-terminals.js +16 -11
  38. package/lib/endpoints/inventory/operation-messages.js +18 -12
  39. package/lib/endpoints/inventory/operation-reasons.js +15 -10
  40. package/lib/endpoints/inventory/pay-on-accounts.js +5 -4
  41. package/lib/endpoints/inventory/payment-terminals.js +15 -10
  42. package/lib/endpoints/inventory/products.js +22 -10
  43. package/lib/endpoints/inventory/promos.js +27 -18
  44. package/lib/endpoints/inventory/segments-information-tables.js +13 -7
  45. package/lib/endpoints/inventory/station-groups.js +2 -4
  46. package/lib/endpoints/inventory/taxes.js +11 -2
  47. package/lib/endpoints/inventory/traveller-card-providers-types.js +6 -6
  48. package/lib/endpoints/inventory/trip-ids.js +67 -0
  49. package/lib/endpoints/inventory/trips.js +60 -13
  50. package/lib/endpoints/inventory/vehicle-types.js +2 -5
  51. package/lib/endpoints/inventory/vehicles.js +4 -2
  52. package/lib/endpoints/invoices/emails.js +15 -5
  53. package/lib/endpoints/invoices/invoices.js +46 -25
  54. package/lib/endpoints/invoices/pdfs.js +15 -8
  55. package/lib/endpoints/invoices/providers.js +42 -25
  56. package/lib/endpoints/invoices/tax-ids.js +11 -7
  57. package/lib/endpoints/notifications/customers.js +1 -1
  58. package/lib/endpoints/notifications/external-customers.js +54 -0
  59. package/lib/endpoints/notifications/pdfs.js +0 -3
  60. package/lib/endpoints/operations/accounting_items.js +7 -1
  61. package/lib/endpoints/operations/flexpasses.js +9 -7
  62. package/lib/endpoints/operations/gift-certificates.js +53 -0
  63. package/lib/endpoints/operations/loans.js +16 -10
  64. package/lib/endpoints/operations/movements.js +17 -6
  65. package/lib/endpoints/operations/pago-express.js +96 -0
  66. package/lib/endpoints/operations/parcels.js +11 -11
  67. package/lib/endpoints/operations/parcels_manifests.js +7 -4
  68. package/lib/endpoints/sales/cancellations.js +43 -31
  69. package/lib/endpoints/sales/cart.js +21 -18
  70. package/lib/endpoints/sales/flexpasses.js +2 -5
  71. package/lib/endpoints/sales/order.js +41 -7
  72. package/lib/endpoints/sales/parcel-quotes.js +2 -2
  73. package/package.json +1 -1
  74. package/src/client.js +10 -2
  75. package/src/endpoints/btrzpay/adyen.js +44 -0
  76. package/src/endpoints/btrzpay/cardpointe.js +6 -4
  77. package/src/endpoints/btrzpay/customerCards.js +19 -19
  78. package/src/endpoints/btrzpay/customers.js +13 -13
  79. package/src/endpoints/btrzpay/cybersource3ds.js +114 -0
  80. package/src/endpoints/btrzpay/datalogic.js +63 -28
  81. package/src/endpoints/btrzpay/oxxo.js +53 -26
  82. package/src/endpoints/btrzpay/prismaTerminals.js +24 -15
  83. package/src/endpoints/btrzpay/referenced-payments.js +4 -4
  84. package/src/endpoints/btrzpay/square.js +8 -8
  85. package/src/endpoints/btrzpay/stripe-terminals.js +17 -10
  86. package/src/endpoints/btrzpay/stripe3ds.js +40 -0
  87. package/src/endpoints/btrzpay/terminalPayments.js +19 -19
  88. package/src/endpoints/inventory/banks.js +39 -21
  89. package/src/endpoints/inventory/change-requests.js +59 -31
  90. package/src/endpoints/inventory/control-classes.js +39 -20
  91. package/src/endpoints/inventory/countries.js +25 -10
  92. package/src/endpoints/inventory/custom-content.js +39 -22
  93. package/src/endpoints/inventory/custom-fields.js +25 -19
  94. package/src/endpoints/inventory/document-types.js +34 -33
  95. package/src/endpoints/inventory/external-wallets.js +25 -20
  96. package/src/endpoints/inventory/fees.js +19 -14
  97. package/src/endpoints/inventory/filtered-trips.js +29 -8
  98. package/src/endpoints/inventory/financing-costs.js +19 -14
  99. package/src/endpoints/inventory/garages.js +19 -14
  100. package/src/endpoints/inventory/getnet-terminals.js +20 -15
  101. package/src/endpoints/inventory/gift-certificate-definitions.js +10 -5
  102. package/src/endpoints/inventory/holidays.js +121 -0
  103. package/src/endpoints/inventory/insurances.js +17 -13
  104. package/src/endpoints/inventory/items.js +13 -9
  105. package/src/endpoints/inventory/labels.js +16 -11
  106. package/src/endpoints/inventory/marital-status.js +16 -11
  107. package/src/endpoints/inventory/marketplace-modifiers.js +16 -11
  108. package/src/endpoints/inventory/mit-terminal-settings.js +15 -10
  109. package/src/endpoints/inventory/mit-terminals.js +16 -11
  110. package/src/endpoints/inventory/operation-messages.js +18 -12
  111. package/src/endpoints/inventory/operation-reasons.js +15 -10
  112. package/src/endpoints/inventory/pay-on-accounts.js +5 -4
  113. package/src/endpoints/inventory/payment-terminals.js +15 -10
  114. package/src/endpoints/inventory/products.js +22 -10
  115. package/src/endpoints/inventory/promos.js +27 -18
  116. package/src/endpoints/inventory/segments-information-tables.js +13 -7
  117. package/src/endpoints/inventory/station-groups.js +2 -4
  118. package/src/endpoints/inventory/taxes.js +11 -2
  119. package/src/endpoints/inventory/traveller-card-providers-types.js +6 -5
  120. package/src/endpoints/inventory/trip-ids.js +54 -0
  121. package/src/endpoints/inventory/trips.js +52 -14
  122. package/src/endpoints/inventory/vehicle-types.js +3 -4
  123. package/src/endpoints/inventory/vehicles.js +4 -3
  124. package/src/endpoints/invoices/emails.js +15 -5
  125. package/src/endpoints/invoices/invoices.js +46 -25
  126. package/src/endpoints/invoices/pdfs.js +15 -8
  127. package/src/endpoints/invoices/providers.js +42 -25
  128. package/src/endpoints/invoices/tax-ids.js +11 -7
  129. package/src/endpoints/notifications/customers.js +1 -1
  130. package/src/endpoints/notifications/external-customers.js +41 -0
  131. package/src/endpoints/notifications/pdfs.js +0 -3
  132. package/src/endpoints/operations/accounting_items.js +7 -2
  133. package/src/endpoints/operations/flexpasses.js +9 -7
  134. package/src/endpoints/operations/gift-certificates.js +39 -0
  135. package/src/endpoints/operations/loans.js +16 -11
  136. package/src/endpoints/operations/movements.js +17 -6
  137. package/src/endpoints/operations/pago-express.js +73 -0
  138. package/src/endpoints/operations/parcels.js +11 -11
  139. package/src/endpoints/operations/parcels_manifests.js +7 -5
  140. package/src/endpoints/sales/cancellations.js +43 -31
  141. package/src/endpoints/sales/cart.js +20 -18
  142. package/src/endpoints/sales/flexpasses.js +3 -4
  143. package/src/endpoints/sales/order.js +34 -7
  144. package/src/endpoints/sales/parcel-quotes.js +2 -2
  145. package/test/endpoints/btrzpay/adyen.tests.js +27 -0
  146. package/test/endpoints/btrzpay/carpointe.tests.js +14 -0
  147. package/test/endpoints/btrzpay/customerCards.test.js +9 -6
  148. package/test/endpoints/btrzpay/cybersource3ds.tests.js +55 -0
  149. package/test/endpoints/btrzpay/stripe-terminals.tests.js +5 -6
  150. package/test/endpoints/btrzpay/stripe3ds.tests.js +31 -0
  151. package/test/endpoints/inventory/banks.test.js +8 -10
  152. package/test/endpoints/inventory/filtered-trips.test.js +6 -0
  153. package/test/endpoints/inventory/holidays.test.js +52 -0
  154. package/test/endpoints/inventory/traveller-card-providers-types.test.js +3 -2
  155. package/test/endpoints/inventory/trip-ids.test.js +27 -0
  156. package/test/endpoints/inventory/trips.test.js +19 -14
  157. package/test/endpoints/notifications/external-customers.test.js +30 -0
  158. package/test/endpoints/operations/gift_certificates.test.js +37 -0
  159. package/test/endpoints/operations/operations.test.js +30 -0
  160. package/test/endpoints/sales/order.test.js +7 -1
@@ -5,91 +5,118 @@ const {
5
5
  /**
6
6
  * Query params for GET /oxxo/:token/payments (btrz-api-payments). See get-payments-handler getSpec().
7
7
  * @typedef {Object} OxxoPaymentsListQuery
8
- * @property {string} [referenceNumber] - Payment reference number
8
+ * @property {string} referenceNumber - Payment reference number (required)
9
9
  */
10
10
 
11
11
  /**
12
- * Factory for OXXO API (btrz-api-payments).
12
+ * Request body for POST /oxxo/:token/payments/:referenceNumber. PostOxxoPaymentsPayload.
13
+ * @typedef {Object} PostOxxoPaymentsPayload
14
+ * @property {string} ticket - Oxxo sale ticket id
15
+ * @property {number} amount - Amount to pay in cents
16
+ * @property {string} folio - FEMSA transaction id
17
+ * @property {string} store - Store id
18
+ * @property {string} account - Account id (ObjectId)
19
+ */
20
+
21
+ /**
22
+ * Request body for POST /oxxo/:token/reverse/:referenceNumber. PostOxxoReversePayload.
23
+ * @typedef {Object} PostOxxoReversePayload
24
+ * @property {string} ticket - Oxxo sale ticket id
25
+ * @property {number} amount - Amount in cents
26
+ * @property {string} folio - FEMSA transaction id
27
+ * @property {string} store - Store id
28
+ * @property {string} account - Account id (ObjectId)
29
+ */
30
+
31
+ /**
32
+ * Factory for OXXO API (btrz-api-payments). Endpoints are hideInDocumentation; client for internal use.
13
33
  * @param {Object} deps
14
34
  * @param {import("axios").AxiosInstance} deps.client
15
35
  * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
16
36
  * @returns {{ token: Object, payments: Object }}
17
37
  */
18
- function oxxoFactory({client, internalAuthTokenProvider: _internalAuthTokenProvider}) {
38
+ function oxxoFactory({client, internalAuthTokenProvider}) {
39
+ function authProvider(opts) {
40
+ return opts !== undefined && opts !== null ? opts : internalAuthTokenProvider;
41
+ }
42
+
19
43
  const token = {
20
44
  /**
21
- * GET /oxxo/token - get OXXO token. API does not accept query params.
45
+ * GET /oxxo/token - get new Oxxo token. No query params.
22
46
  * @param {Object} opts
23
47
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
24
48
  * @param {{ getToken: function(): string }} [opts.internalAuthTokenProvider]
25
49
  * @param {Object} [opts.headers] - Optional request headers
26
- * @returns {Promise<import("axios").AxiosResponse>}
50
+ * @returns {Promise<import("axios").AxiosResponse<{ token: string }>>}
51
+ * GetOxxoTokenResponse. Rejects with 401, 500.
27
52
  */
28
- get({jwtToken, headers, internalAuthTokenProvider}) {
53
+ get({jwtToken, headers, internalAuthTokenProvider: optsAuth}) {
29
54
  return client({
30
55
  url: "/oxxo/token",
31
- headers: authorizationHeaders({jwtToken, internalAuthTokenProvider, headers})
56
+ headers: authorizationHeaders({jwtToken, internalAuthTokenProvider: authProvider(optsAuth), headers})
32
57
  });
33
58
  }
34
59
  };
35
60
 
36
61
  const payments = {
37
62
  /**
38
- * GET /oxxo/:oxxoToken/payments - list OXXO payments.
63
+ * GET /oxxo/:token/payments - list Oxxo payments by token and reference number.
39
64
  * @param {Object} opts
40
65
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
41
- * @param {string} opts.oxxoToken - OXXO token
42
- * @param {OxxoPaymentsListQuery} [opts.query] - Query params (referenceNumber)
66
+ * @param {string} opts.oxxoToken - Oxxo token
67
+ * @param {OxxoPaymentsListQuery} opts.query - referenceNumber (required)
43
68
  * @param {{ getToken: function(): string }} [opts.internalAuthTokenProvider]
44
69
  * @param {Object} [opts.headers] - Optional request headers
45
- * @returns {Promise<import("axios").AxiosResponse>} GetOxxoPaymentsResponse; 400 ERROR_GETTING_PAYMENT_METHODS
70
+ * @returns {Promise<import("axios").AxiosResponse<{ payments: Array }>>}
71
+ * GetOxxoPaymentsResponse. Rejects with 400 (ERROR_GETTING_PAYMENT_METHODS, OXXO_PAY_NOT_ENABLED), 401, 500.
46
72
  */
47
- all({jwtToken, headers, oxxoToken, query, internalAuthTokenProvider}) {
73
+ all({jwtToken, headers, oxxoToken, query, internalAuthTokenProvider: optsAuth}) {
48
74
  return client({
49
75
  url: `/oxxo/${oxxoToken}/payments`,
50
76
  params: query,
51
- headers: authorizationHeaders({jwtToken, internalAuthTokenProvider, headers})
77
+ headers: authorizationHeaders({jwtToken, internalAuthTokenProvider: authProvider(optsAuth), headers})
52
78
  });
53
79
  },
54
80
  /**
55
- * POST /oxxo/:oxxoToken/payments/:referenceNumber - update OXXO payment. API does not accept query params.
81
+ * POST /oxxo/:token/payments/:referenceNumber - pay Oxxo payment (referenceNumber: UUID v4 or 20 digits).
56
82
  * @param {Object} opts
57
83
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
58
- * @param {string} opts.oxxoToken - OXXO token
84
+ * @param {string} opts.oxxoToken - Oxxo token
59
85
  * @param {string} opts.referenceNumber - Payment reference number
60
- * @param {Object} opts.data - Request body (PostOxxoPaymentsPayload)
86
+ * @param {PostOxxoPaymentsPayload|{ oxxoInfo: PostOxxoPaymentsPayload }} opts.data - Request body
61
87
  * @param {{ getToken: function(): string }} [opts.internalAuthTokenProvider]
62
88
  * @param {Object} [opts.headers] - Optional request headers
63
- * @returns {Promise<import("axios").AxiosResponse>}
89
+ * @returns {Promise<import("axios").AxiosResponse<{ payment: Object }>>}
90
+ * Rejects with 400 (INVALID_REFERENCE_NUMBER_FORMAT, INVALID_ACCOUNT, OXXO_PAY_NOT_ENABLED), 401, 500.
64
91
  */
65
- update({jwtToken, headers, oxxoToken, query, referenceNumber, data, internalAuthTokenProvider}) {
92
+ update({jwtToken, headers, oxxoToken, query, referenceNumber, data, internalAuthTokenProvider: optsAuth}) {
66
93
  return client({
67
94
  url: `/oxxo/${oxxoToken}/payments/${referenceNumber}`,
68
95
  method: "post",
69
96
  params: query,
70
97
  data,
71
- headers: authorizationHeaders({jwtToken, internalAuthTokenProvider, headers})
98
+ headers: authorizationHeaders({jwtToken, internalAuthTokenProvider: authProvider(optsAuth), headers})
72
99
  });
73
100
  },
74
101
  /**
75
- * POST /oxxo/:oxxoToken/reverse/:referenceNumber - reverse OXXO payment. API does not accept query params.
102
+ * POST /oxxo/:token/reverse/:referenceNumber - reverse Oxxo payment (referenceNumber: UUID v4 or 20 digits).
76
103
  * @param {Object} opts
77
- * @param {string} [opts.token] - API key
78
104
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
79
- * @param {string} opts.oxxoToken - OXXO token
105
+ * @param {string} opts.oxxoToken - Oxxo token
80
106
  * @param {string} opts.referenceNumber - Payment reference number
81
- * @param {Object} [opts.data] - Request body (PostOxxoReversePayload)
107
+ * @param {PostOxxoReversePayload|{ oxxoInfo: PostOxxoReversePayload }} [opts.data] - Request body
82
108
  * @param {{ getToken: function(): string }} [opts.internalAuthTokenProvider]
83
109
  * @param {Object} [opts.headers] - Optional request headers
84
- * @returns {Promise<import("axios").AxiosResponse>}
110
+ * @returns {Promise<import("axios").AxiosResponse<{ payment: Object }>>}
111
+ * Rejects with 400 (INVALID_REFERENCE_NUMBER_FORMAT, INVALID_ACCOUNT, OXXO_PAY_NOT_ENABLED), 401, 500.
85
112
  */
86
- reverse({token: authToken, jwtToken, headers, query, referenceNumber, data, internalAuthTokenProvider, oxxoToken}) {
113
+ reverse({jwtToken, headers, query, referenceNumber, data, internalAuthTokenProvider: optsAuth, oxxoToken}) {
87
114
  return client({
88
115
  url: `/oxxo/${oxxoToken}/reverse/${referenceNumber}`,
89
116
  method: "post",
90
117
  params: query,
91
118
  data,
92
- headers: authorizationHeaders({token: authToken, jwtToken, internalAuthTokenProvider, headers})
119
+ headers: authorizationHeaders({jwtToken, internalAuthTokenProvider: authProvider(optsAuth), headers})
93
120
  });
94
121
  }
95
122
  };
@@ -3,10 +3,11 @@ const {
3
3
  } = require("../endpoints_helpers.js");
4
4
 
5
5
  /**
6
- * Query params for GET payment/reversal/refund and PUT refund (btrz-api-payments). See get-by-id-* and put-refunds getSpec().
6
+ * Query params for Prisma terminals endpoints (btrz-api-payments).
7
7
  * @typedef {Object} PrismaTerminalsQuery
8
8
  * @property {string} [providerId] - Account provider (operator) ID; used by agencies/sellers
9
9
  * @property {boolean} [validateRefund] - (PUT refunds only) If true, fetch current state from Prisma before applying
10
+ * @property {boolean} [validatePayment] - (PUT payments only) If true, validate payment against the provider
10
11
  */
11
12
 
12
13
  /**
@@ -35,12 +36,13 @@ function prismaTerminalsFactory({client, internalAuthTokenProvider}) {
35
36
  });
36
37
  },
37
38
  /**
38
- * POST /prisma-terminals/payments/:id/reversals - create reversal. API does not accept query params.
39
+ * POST /prisma-terminals/payments/:id/reversals - create reversal.
39
40
  * @param {Object} opts
40
41
  * @param {string} [opts.token] - API key
41
42
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
42
- * @param {string} opts.id - Payment id
43
+ * @param {string} opts.id - Payment id (prismaPaymentId)
43
44
  * @param {Object} opts.prismaReversal - Prisma reversal payload
45
+ * @param {PrismaTerminalsQuery} [opts.query] - Query params (providerId)
44
46
  * @param {Object} [opts.headers] - Optional headers
45
47
  * @returns {Promise<import("axios").AxiosResponse>}
46
48
  */
@@ -54,11 +56,12 @@ function prismaTerminalsFactory({client, internalAuthTokenProvider}) {
54
56
  });
55
57
  },
56
58
  /**
57
- * DELETE /prisma-terminals/reversals/:id - delete reversal. API does not accept query params.
59
+ * DELETE /prisma-terminals/reversals/:id - delete reversal.
58
60
  * @param {Object} opts
59
61
  * @param {string} [opts.token] - API key
60
62
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
61
- * @param {string} opts.id - Reversal id
63
+ * @param {string} opts.id - Reversal id (prismaPaymentId)
64
+ * @param {PrismaTerminalsQuery} [opts.query] - Query params (providerId)
62
65
  * @param {Object} [opts.headers] - Optional headers
63
66
  * @returns {Promise<import("axios").AxiosResponse>}
64
67
  */
@@ -90,12 +93,13 @@ function prismaTerminalsFactory({client, internalAuthTokenProvider}) {
90
93
  });
91
94
  },
92
95
  /**
93
- * POST /prisma-terminals/payments/:id/refunds - create refund. API does not accept query params.
96
+ * POST /prisma-terminals/payments/:id/refunds - create refund.
94
97
  * @param {Object} opts
95
98
  * @param {string} [opts.token] - API key
96
99
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
97
- * @param {string} opts.id - Payment id
100
+ * @param {string} opts.id - Payment id (prismaPaymentId)
98
101
  * @param {Object} opts.prismaRefund - Prisma refund payload
102
+ * @param {PrismaTerminalsQuery} [opts.query] - Query params (providerId)
99
103
  * @param {Object} [opts.headers] - Optional headers
100
104
  * @returns {Promise<import("axios").AxiosResponse>}
101
105
  */
@@ -109,11 +113,12 @@ function prismaTerminalsFactory({client, internalAuthTokenProvider}) {
109
113
  });
110
114
  },
111
115
  /**
112
- * DELETE /prisma-terminals/refunds/:id - delete refund. API does not accept query params.
116
+ * DELETE /prisma-terminals/refunds/:id - delete refund.
113
117
  * @param {Object} opts
114
118
  * @param {string} [opts.token] - API key
115
119
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
116
- * @param {string} opts.id - Refund id
120
+ * @param {string} opts.id - Refund id (prismaPaymentId)
121
+ * @param {PrismaTerminalsQuery} [opts.query] - Query params (providerId)
117
122
  * @param {Object} [opts.headers] - Optional headers
118
123
  * @returns {Promise<import("axios").AxiosResponse>}
119
124
  */
@@ -165,11 +170,12 @@ function prismaTerminalsFactory({client, internalAuthTokenProvider}) {
165
170
  });
166
171
  },
167
172
  /**
168
- * POST /prisma-terminals/payments - create payment. API does not accept query params.
173
+ * POST /prisma-terminals/payments - create payment.
169
174
  * @param {Object} opts
170
175
  * @param {string} [opts.token] - API key
171
176
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
172
177
  * @param {Object} opts.prismaPayment - Prisma payment payload
178
+ * @param {PrismaTerminalsQuery} [opts.query] - Query params (providerId)
173
179
  * @param {Object} [opts.headers] - Optional headers
174
180
  * @returns {Promise<import("axios").AxiosResponse>}
175
181
  */
@@ -183,11 +189,12 @@ function prismaTerminalsFactory({client, internalAuthTokenProvider}) {
183
189
  });
184
190
  },
185
191
  /**
186
- * DELETE /prisma-terminals/payments/:id - delete payment. API does not accept query params.
192
+ * DELETE /prisma-terminals/payments/:id - delete payment.
187
193
  * @param {Object} opts
188
194
  * @param {string} [opts.token] - API key
189
195
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
190
- * @param {string} opts.id - Payment id
196
+ * @param {string} opts.id - Payment id (prismaPaymentId)
197
+ * @param {PrismaTerminalsQuery} [opts.query] - Query params (providerId)
191
198
  * @param {Object} [opts.headers] - Optional headers
192
199
  * @returns {Promise<import("axios").AxiosResponse>}
193
200
  */
@@ -200,12 +207,13 @@ function prismaTerminalsFactory({client, internalAuthTokenProvider}) {
200
207
  });
201
208
  },
202
209
  /**
203
- * PUT /prisma-terminals/payments/:id - update payment. API does not accept query params.
210
+ * PUT /prisma-terminals/payments/:id - update payment (hidden in API docs).
204
211
  * @param {Object} opts
205
212
  * @param {string} [opts.token] - API key
206
213
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
207
- * @param {string} opts.id - Payment id
214
+ * @param {string} opts.id - Payment id (prismaPaymentId)
208
215
  * @param {Object} opts.prismaPayment - Prisma payment payload
216
+ * @param {PrismaTerminalsQuery} [opts.query] - Query params (providerId, validatePayment)
209
217
  * @param {Object} [opts.headers] - Optional headers
210
218
  * @returns {Promise<import("axios").AxiosResponse>}
211
219
  */
@@ -224,11 +232,12 @@ function prismaTerminalsFactory({client, internalAuthTokenProvider}) {
224
232
 
225
233
  const settlements = {
226
234
  /**
227
- * POST /prisma-terminals/settlements - create settlement. API does not accept query params.
235
+ * POST /prisma-terminals/settlements - create settlement.
228
236
  * @param {Object} opts
229
237
  * @param {string} [opts.token] - API key
230
238
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
231
239
  * @param {Object} opts.settlement - Settlement payload
240
+ * @param {PrismaTerminalsQuery} [opts.query] - Query params (providerId)
232
241
  * @param {Object} [opts.headers] - Optional headers
233
242
  * @returns {Promise<import("axios").AxiosResponse>}
234
243
  */
@@ -15,14 +15,14 @@ const {authorizationHeaders} = require("./../endpoints_helpers.js");
15
15
  */
16
16
  function referencedPaymentsFactory({client, internalAuthTokenProvider}) {
17
17
  /**
18
- * GET /referenced-payments/:transactionId/:referenceNumber/status - get status. API does not accept query params.
18
+ * GET /referenced-payments/:transactionId/:referenceNumber/status - get referenced payment status. Requires backoffice auth. Response body: { paymentResult: { status, result } | null }.
19
19
  * @param {Object} opts
20
20
  * @param {string} [opts.token] - API key
21
21
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
22
- * @param {string} opts.transactionId - Transaction id
23
- * @param {string} opts.referenceNumber - Reference number
22
+ * @param {string} opts.transactionId - Transaction ID
23
+ * @param {string} opts.referenceNumber - Reference number of the payment
24
24
  * @param {Object} [opts.headers] - Optional headers
25
- * @returns {Promise<import("axios").AxiosResponse>}
25
+ * @returns {Promise<import("axios").AxiosResponse<{ paymentResult: { status: "error"|"pending"|"success"|"review", result: object } | null }>>}
26
26
  */
27
27
  function getStatus({token, jwtToken, transactionId, referenceNumber, headers}) {
28
28
  return client.get(`/referenced-payments/${transactionId}/${referenceNumber}/status`, {
@@ -3,7 +3,7 @@ const {
3
3
  } = require("./../endpoints_helpers.js");
4
4
 
5
5
  /**
6
- * Factory for Square webhooks API (btrz-api-payments).
6
+ * Factory for Square webhooks API (btrz-api-payments). Used to forward or simulate Square webhook requests to the Payments API.
7
7
  * @param {Object} deps
8
8
  * @param {import("axios").AxiosInstance} deps.client
9
9
  * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
@@ -11,14 +11,14 @@ const {
11
11
  */
12
12
  function squareWebhooksFactory({client, internalAuthTokenProvider}) {
13
13
  /**
14
- * POST /square-webhooks/:providerId - create Square webhook. API does not accept query params.
14
+ * POST /square-webhooks/:providerId - send Square webhook payload to the Payments API. API verifies x-square-signature when present. Body must include type and data (Square webhook format).
15
15
  * @param {Object} opts
16
16
  * @param {string} [opts.token] - API key
17
17
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
18
- * @param {string} opts.providerId - Provider id
19
- * @param {Object} opts.data - Request body
20
- * @param {Object} [opts.headers] - Optional headers
21
- * @returns {Promise<import("axios").AxiosResponse>}
18
+ * @param {string} opts.providerId - Provider ID (square_terminal payment method owner)
19
+ * @param {Object} opts.data - Request body (Square webhook payload: type, data required; optional merchant_id, event_id, created_at)
20
+ * @param {Object} [opts.headers] - Optional headers (e.g. x-square-signature for verification)
21
+ * @returns {Promise<import("axios").AxiosResponse<{ status: "OK" }>>}
22
22
  */
23
23
  function create({token, jwtToken, data, providerId, headers}) {
24
24
  return client({
@@ -43,12 +43,12 @@ function squareWebhooksFactory({client, internalAuthTokenProvider}) {
43
43
  */
44
44
  function squareTerminalsFactory({client, internalAuthTokenProvider}) {
45
45
  /**
46
- * GET /square-terminals - get Square terminals. API does not accept query params.
46
+ * GET /square-terminals - list Square terminals for the account. Requires JWT (BETTEREZ_APP or MOBILE_SCANNER). Response body: { terminals } with terminal objects (id, name, code, deviceId, productType, locationId, status, pairBy, createdAt, statusChangedAt).
47
47
  * @param {Object} opts
48
48
  * @param {string} [opts.token] - API key
49
49
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
50
50
  * @param {Object} [opts.headers] - Optional headers
51
- * @returns {Promise<import("axios").AxiosResponse>}
51
+ * @returns {Promise<import("axios").AxiosResponse<{ terminals: Array<{ id: string, name: string, code: string, deviceId?: string, productType?: string, locationId: string, status?: string, pairBy?: string, createdAt?: string, statusChangedAt?: string }> }>>}
52
52
  */
53
53
  function get({token, jwtToken, headers}) {
54
54
  return client.get("/square-terminals", {
@@ -5,7 +5,15 @@ const {
5
5
  /**
6
6
  * Query params for GET /stripe-terminals (btrz-api-payments). See get-handler getSpec().
7
7
  * @typedef {Object} StripeTerminalsListQuery
8
- * @property {string} [providerId] - Account provider (operator) ID; used by agencies/sellers
8
+ * @property {string} [providerId] - Account provider (operator) ID; used by agencies/sellers; when omitted, authenticated account ID is used
9
+ */
10
+
11
+ /**
12
+ * Response for GET /stripe-terminals. Paginated list of Stripe readers.
13
+ * @typedef {Object} GetStripeTerminalsResponse
14
+ * @property {Object[]} stripeTerminals - Stripe Terminal reader objects (id, label, serial_number, status, etc.)
15
+ * @property {string} next - Next page link; empty if no next page
16
+ * @property {string} previous - Previous page link; empty if no previous page
9
17
  */
10
18
 
11
19
  /**
@@ -17,13 +25,13 @@ const {
17
25
  */
18
26
  function stripeTerminalsFactory({client, internalAuthTokenProvider}) {
19
27
  /**
20
- * GET /stripe-terminals - list Stripe terminals.
28
+ * GET /stripe-terminals - list Stripe Terminal readers for the account (paginated).
21
29
  * @param {Object} opts
22
30
  * @param {string} [opts.token] - API key
23
31
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
24
- * @param {StripeTerminalsListQuery} [opts.query] - Query params (providerId)
32
+ * @param {StripeTerminalsListQuery} [opts.query] - Optional providerId
25
33
  * @param {Object} [opts.headers] - Optional headers
26
- * @returns {Promise<import("axios").AxiosResponse>}
34
+ * @returns {Promise<import("axios").AxiosResponse<GetStripeTerminalsResponse>>} Rejects with 400 (STRIPE_SECRET_KEY_INVALID), 401, 404 (PAYMENT_METHOD_NOT_FOUND), 500.
27
35
  */
28
36
  function all({token, jwtToken, headers, query = {}}) {
29
37
  return client.get("/stripe-terminals", {
@@ -35,21 +43,20 @@ function stripeTerminalsFactory({client, internalAuthTokenProvider}) {
35
43
  }
36
44
 
37
45
  /**
38
- * POST /stripe-terminals/:id/simulate - simulate Stripe payment. API does not accept query params.
46
+ * POST /stripe-terminals/:terminalId/simulate - simulate a payment on a Stripe Terminal reader. API does not accept query params.
39
47
  * @param {Object} opts
40
48
  * @param {string} [opts.token] - API key
41
49
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
42
- * @param {string} opts.id - Terminal id
43
- * @param {Object} opts.stripePayment - Stripe payment payload
50
+ * @param {string} opts.id - Terminal ID (Stripe reader id, e.g. tmr_xxx)
51
+ * @param {{ ccNumber: string }} opts.stripePayment - Payment to simulate; ccNumber required
44
52
  * @param {Object} [opts.headers] - Optional headers
45
- * @returns {Promise<import("axios").AxiosResponse>}
53
+ * @returns {Promise<import("axios").AxiosResponse<{ stripeTerminalPayment: Object }>>} Rejects with 400 (WRONG_DATA), 401, 404 (PAYMENT_METHOD_NOT_FOUND, TRANSACTION_NOT_FOUND), 409 (errorCode/errorMessage), 500.
46
54
  */
47
- function simulate({token, jwtToken, id, stripePayment, query = {}, headers}) {
55
+ function simulate({token, jwtToken, id, stripePayment, headers}) {
48
56
  return client({
49
57
  url: `/stripe-terminals/${id}/simulate`,
50
58
  method: "post",
51
59
  headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers}),
52
- params: query,
53
60
  data: {stripePayment}
54
61
  });
55
62
  }
@@ -0,0 +1,40 @@
1
+ /* eslint-disable max-len */
2
+ const {authorizationHeaders} = require("../endpoints_helpers.js");
3
+
4
+ /**
5
+ * Request body for POST /stripe-payment-intent (btrz-api-payments). PaymentIntentPostData.
6
+ * @typedef {Object} PaymentIntentPostData
7
+ * @property {string} providerName - Provider name (e.g. "stripe") used to resolve the payment method with Stripe 3DS
8
+ * @property {Object} data - Payment data: card details, amount, currency, transactionId, customer info, etc.
9
+ */
10
+
11
+ /**
12
+ * Factory for Stripe 3DS API (btrz-api-payments): create Stripe Payment Intent for 3DS flows.
13
+ * @param {Object} deps
14
+ * @param {import("axios").AxiosInstance} deps.client
15
+ * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
16
+ * @returns {{ createPaymentIntent: function }}
17
+ */
18
+ function stripe3dsFactory({client, internalAuthTokenProvider}) {
19
+ /**
20
+ * POST /stripe-payment-intent - creates a Stripe Payment Intent for 3DS; returns requires_action and payment_intent_client_secret.
21
+ * @param {Object} opts
22
+ * @param {string} [opts.token] - API key
23
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
24
+ * @param {string} opts.providerName - Provider name (e.g. "stripe")
25
+ * @param {Object} opts.data - Payment data (card, amount, currency, transactionId, etc.)
26
+ * @param {Object} [opts.headers] - Optional request headers
27
+ * @returns {Promise<import("axios").AxiosResponse<{ requires_action: boolean, payment_intent_client_secret: string }>>} PaymentIntentResponse. Rejects with 400 (WRONG_DATA, PAYMENT_INTENT_MISSING_PAYMENT_DATA, PAYMENT_INTENT_MISSING_PROVIDER, PROVIDER_NOT_FOUND, MISSING_PAYMENT_METHOD_PARAMS, PAYMENT_METHOD_NOT_FOUND, STRIPE_MISSING_PRIVATE_KEY, MISSING_PAYMENT_DATA), 401, 500.
28
+ */
29
+ function createPaymentIntent({token, jwtToken, providerName, data, headers}) {
30
+ return client.post("/stripe-payment-intent", {providerName, data}, {
31
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
32
+ });
33
+ }
34
+
35
+ return {
36
+ createPaymentIntent
37
+ };
38
+ }
39
+
40
+ module.exports = stripe3dsFactory;
@@ -5,10 +5,10 @@ const {
5
5
  /**
6
6
  * Query params for GET /terminal-payments/mit/:id (btrz-api-payments). See get-mit-by-id-handler getSpec().
7
7
  * @typedef {Object} TerminalPaymentsMitGetQuery
8
- * @property {string} [providerId] - Account provider (operator) ID; used by agencies/sellers
9
- * @property {string} [branchId] - Branch id where payment started (required for GET)
10
- * @property {string} [companyId] - Company id where payment started (required for GET)
11
- * @property {string} [date] - Date when payment started; format dd/mm/yyyy (required for GET)
8
+ * @property {string} [providerId] - Account provider (operator) ID; used by agencies/sellers; when omitted, authenticated account is used
9
+ * @property {string} branchId - Branch id where payment started (required). Example: 00676
10
+ * @property {string} companyId - Company id where payment started (required). Example: Z890
11
+ * @property {string} date - Date when payment started; format dd/mm/yyyy (required)
12
12
  */
13
13
 
14
14
  /**
@@ -27,15 +27,15 @@ const {
27
27
  function terminalPaymentsFactory({client, internalAuthTokenProvider}) {
28
28
  const mit = {
29
29
  /**
30
- * PUT /terminal-payments/mit/:id - update MIT terminal payment.
30
+ * PUT /terminal-payments/mit/:terminalPaymentId - complete MIT terminal payment with result from terminal.
31
31
  * @param {Object} opts
32
32
  * @param {string} [opts.token] - API key
33
33
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
34
- * @param {string} opts.id - Terminal payment id
35
- * @param {Object} opts.terminalPayment - Terminal payment payload
36
- * @param {TerminalPaymentsMitPutQuery} [opts.query] - Query params (providerId)
34
+ * @param {string} opts.id - Terminal payment ID (UUID)
35
+ * @param {{ result?: Object, paymentRequest: Object, orderId: string }} opts.terminalPayment - Terminal payment data (result, paymentRequest, orderId)
36
+ * @param {TerminalPaymentsMitPutQuery} [opts.query] - Optional providerId
37
37
  * @param {Object} [opts.headers] - Optional headers
38
- * @returns {Promise<import("axios").AxiosResponse>}
38
+ * @returns {Promise<import("axios").AxiosResponse<{ terminalPayment: Object }>>} Rejects with 400 (WRONG_DATA, INVALID_TERMINALPAYMENT_ID, INVALID_RESULT_OBJECT, MIT_*), 401, 404 (TERMINALPAYMENT_NOT_FOUND, MIT_PAYMENT_NOT_FOUND), 409 (CANT_UPDATE_ORDER), 500.
39
39
  */
40
40
  update({token, jwtToken, id, terminalPayment, query = {}, headers}) {
41
41
  return client({
@@ -47,14 +47,14 @@ function terminalPaymentsFactory({client, internalAuthTokenProvider}) {
47
47
  });
48
48
  },
49
49
  /**
50
- * GET /terminal-payments/mit/:id - get MIT terminal payment.
50
+ * GET /terminal-payments/mit/:terminalPaymentId - get MIT terminal payment result from MIT servers.
51
51
  * @param {Object} opts
52
52
  * @param {string} [opts.token] - API key
53
53
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
54
- * @param {string} opts.id - Terminal payment id
55
- * @param {TerminalPaymentsMitGetQuery} [opts.query] - Query params (providerId, branchId, companyId, date)
54
+ * @param {string} opts.id - Terminal payment ID (UUID)
55
+ * @param {TerminalPaymentsMitGetQuery} opts.query - branchId, companyId, date (required); optional providerId
56
56
  * @param {Object} [opts.headers] - Optional headers
57
- * @returns {Promise<import("axios").AxiosResponse>}
57
+ * @returns {Promise<import("axios").AxiosResponse<{ terminalPayment: Object }>>} Rejects with 400 (WRONG_DATA, INVALID_TERMINALPAYMENT_ID, INVALID_DATE, MIT_*), 401, 404 (TERMINALPAYMENT_NOT_FOUND, MIT_PAYMENT_NOT_FOUND), 500.
58
58
  */
59
59
  get({token, jwtToken, id, query = {}, headers}) {
60
60
  return client.get(`/terminal-payments/mit/${id}`, {
@@ -66,14 +66,14 @@ function terminalPaymentsFactory({client, internalAuthTokenProvider}) {
66
66
 
67
67
  const webhooks = {
68
68
  /**
69
- * POST /terminal-payments/webhooks/getnet/:providerId - Getnet webhook. API does not accept query params.
69
+ * POST /terminal-payments/webhooks/getnet/:providerId - Getnet Terminal webhook (inbound). API does not accept query params.
70
70
  * @param {Object} opts
71
- * @param {Object} opts.data - Request body
72
- * @param {string} opts.providerId - Provider id
71
+ * @param {Object} opts.data - Getnet webhook payload (e.g. TrxResult, TrxReference, userId)
72
+ * @param {string} opts.providerId - Provider (account) ID for getnet_terminal payment method
73
73
  * @param {Object} [opts.headers] - Optional headers
74
- * @param {string} [opts.token] - API key
75
- * @param {string} [opts.jwtToken] - JWT or internal auth symbol
76
- * @returns {Promise<import("axios").AxiosResponse>}
74
+ * @param {string} [opts.token] - API key (optional when no userId in payload)
75
+ * @param {string} [opts.jwtToken] - JWT or internal auth (required when userId is in payload)
76
+ * @returns {Promise<import("axios").AxiosResponse<{ status: string }>>} Rejects with 400 (INVALID_WEBHOOK_PAYLOAD), 401 (when userId present but not authenticated), 404 (PAYMENT_NOT_FOUND_FOR_WEBHOOK_EVENT, PAYMENT_METHOD_NOT_FOUND, USER_NOT_FOUND), 409 (CANT_UPDATE_ORDER), 500.
77
77
  */
78
78
  getnet({data, providerId, headers = {}, token, jwtToken}) {
79
79
  const _headers = token && jwtToken ?
@@ -11,12 +11,15 @@ const {
11
11
  */
12
12
  function banksFactory({client, internalAuthTokenProvider}) {
13
13
  /**
14
- * GET /banks - list banks. API does not accept query params.
14
+ * GET /banks List banks for the account. Paginated; optional page query param (1-based).
15
15
  * @param {Object} opts
16
- * @param {string} [opts.token] - API key
17
- * @param {string} [opts.jwtToken] - JWT or internal auth symbol
16
+ * @param {string} [opts.token] - API key (X-API-KEY)
17
+ * @param {string} [opts.jwtToken] - JWT or internal auth (Authorization: Bearer)
18
+ * @param {Object} [opts.query] - Query params: page (1-based page number)
18
19
  * @param {Object} [opts.headers] - Optional headers
19
- * @returns {Promise<import("axios").AxiosResponse>}
20
+ * @returns {Promise<import("axios").AxiosResponse<{ banks: Object[], count: number, next: string, previous: string }>>}
21
+ * @throws 401 Unauthorized
22
+ * @throws 500 Internal server error
20
23
  */
21
24
  function all({
22
25
  token,
@@ -31,13 +34,17 @@ function banksFactory({client, internalAuthTokenProvider}) {
31
34
  }
32
35
 
33
36
  /**
34
- * GET /banks/:bankId - get bank by id. API does not accept query params.
37
+ * GET /banks/:bankId Get a single bank by ID (24 hex characters).
35
38
  * @param {Object} opts
36
39
  * @param {string} [opts.token] - API key
37
- * @param {string} [opts.jwtToken] - JWT or internal auth symbol
38
- * @param {string} opts.bankId - Bank id
40
+ * @param {string} [opts.jwtToken] - JWT or internal auth
41
+ * @param {string} opts.bankId - Bank id (24 hex characters)
39
42
  * @param {Object} [opts.headers] - Optional headers
40
- * @returns {Promise<import("axios").AxiosResponse>}
43
+ * @returns {Promise<import("axios").AxiosResponse<{ bank: Object }>>}
44
+ * @throws 400 INVALID_BANK_ID
45
+ * @throws 401 Unauthorized
46
+ * @throws 404 BANK_NOT_FOUND
47
+ * @throws 500 Internal server error
41
48
  */
42
49
  function get({bankId, token, headers, jwtToken}) {
43
50
  return client.get(`/banks/${bankId}`, {
@@ -46,13 +53,16 @@ function banksFactory({client, internalAuthTokenProvider}) {
46
53
  }
47
54
 
48
55
  /**
49
- * POST /banks - create bank. API does not accept query params.
56
+ * POST /banks Create a bank. Body: BankPostData (name, accountNumbers required; optional depositAlgorithmCode).
50
57
  * @param {Object} opts
51
58
  * @param {string} [opts.token] - API key
52
- * @param {string} [opts.jwtToken] - JWT or internal auth symbol
53
- * @param {Object} opts.bank - Bank payload
59
+ * @param {string} [opts.jwtToken] - JWT or internal auth
60
+ * @param {Object} opts.bank - Bank payload (name, accountNumbers; each accountNumber: number, currency, alias)
54
61
  * @param {Object} [opts.headers] - Optional headers
55
- * @returns {Promise<import("axios").AxiosResponse>}
62
+ * @returns {Promise<import("axios").AxiosResponse<{ bank: Object }>>}
63
+ * @throws 400 WRONG_DATA, STATION_INVALID_COST_CENTER
64
+ * @throws 401 Unauthorized
65
+ * @throws 500 Internal server error
56
66
  */
57
67
  function create({jwtToken, token, bank, headers}) {
58
68
  return client({
@@ -66,13 +76,17 @@ function banksFactory({client, internalAuthTokenProvider}) {
66
76
  }
67
77
 
68
78
  /**
69
- * DELETE /banks/:bankId - remove bank. API does not accept query params.
79
+ * DELETE /banks/:bankId Delete a bank by ID.
70
80
  * @param {Object} opts
71
81
  * @param {string} [opts.token] - API key
72
- * @param {string} [opts.jwtToken] - JWT or internal auth symbol
73
- * @param {string} opts.bankId - Bank id
82
+ * @param {string} [opts.jwtToken] - JWT or internal auth
83
+ * @param {string} opts.bankId - Bank id (24 hex characters)
74
84
  * @param {Object} [opts.headers] - Optional headers
75
- * @returns {Promise<import("axios").AxiosResponse>}
85
+ * @returns {Promise<import("axios").AxiosResponse<{ bankId: string }>>}
86
+ * @throws 400 BANK_ID
87
+ * @throws 401 Unauthorized
88
+ * @throws 404 BANK_NOT_FOUND
89
+ * @throws 500 Internal server error
76
90
  */
77
91
  function remove({jwtToken, bankId, token, headers}) {
78
92
  return client({
@@ -83,14 +97,18 @@ function banksFactory({client, internalAuthTokenProvider}) {
83
97
  }
84
98
 
85
99
  /**
86
- * PUT /banks/:bankId - update bank. API does not accept query params.
100
+ * PUT /banks/:bankId Update a bank by ID. Body: BankPostData (name, accountNumbers required).
87
101
  * @param {Object} opts
88
102
  * @param {string} [opts.token] - API key
89
- * @param {string} [opts.jwtToken] - JWT or internal auth symbol
90
- * @param {string} opts.bankId - Bank id
91
- * @param {Object} opts.bank - Bank payload
103
+ * @param {string} [opts.jwtToken] - JWT or internal auth
104
+ * @param {string} opts.bankId - Bank id (24 hex characters)
105
+ * @param {Object} opts.bank - Bank payload (name, accountNumbers; each accountNumber: number, currency, alias)
92
106
  * @param {Object} [opts.headers] - Optional headers
93
- * @returns {Promise<import("axios").AxiosResponse>}
107
+ * @returns {Promise<import("axios").AxiosResponse<{ bank: Object }>>}
108
+ * @throws 400 WRONG_DATA, STATION_INVALID_COST_CENTER
109
+ * @throws 401 Unauthorized
110
+ * @throws 404 BANK_NOT_FOUND
111
+ * @throws 500 Internal server error
94
112
  */
95
113
  function update({jwtToken, token, bankId, bank, headers}) {
96
114
  return client({