@revenexx/node 0.4.0 → 0.5.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 (327) hide show
  1. package/dist/client.d.mts +1 -0
  2. package/dist/client.d.ts +1 -0
  3. package/dist/client.js +3 -3
  4. package/dist/client.js.map +1 -1
  5. package/dist/client.mjs +3 -3
  6. package/dist/client.mjs.map +1 -1
  7. package/dist/enums/market-readiness-report-warning-reasons.d.mts +9 -0
  8. package/dist/enums/market-readiness-report-warning-reasons.d.ts +9 -0
  9. package/dist/enums/market-readiness-report-warning-reasons.js +14 -0
  10. package/dist/enums/market-readiness-report-warning-reasons.js.map +1 -0
  11. package/dist/enums/market-readiness-report-warning-reasons.mjs +13 -0
  12. package/dist/enums/market-readiness-report-warning-reasons.mjs.map +1 -0
  13. package/dist/enums/market-readiness-warning-reasons.d.mts +9 -0
  14. package/dist/enums/market-readiness-warning-reasons.d.ts +9 -0
  15. package/dist/enums/market-readiness-warning-reasons.js +14 -0
  16. package/dist/enums/market-readiness-warning-reasons.js.map +1 -0
  17. package/dist/enums/market-readiness-warning-reasons.mjs +13 -0
  18. package/dist/enums/market-readiness-warning-reasons.mjs.map +1 -0
  19. package/dist/enums/product-defaults-result-reason.d.mts +6 -0
  20. package/dist/enums/product-defaults-result-reason.d.ts +6 -0
  21. package/dist/enums/product-defaults-result-reason.js +11 -0
  22. package/dist/enums/product-defaults-result-reason.js.map +1 -0
  23. package/dist/enums/product-defaults-result-reason.mjs +10 -0
  24. package/dist/enums/product-defaults-result-reason.mjs.map +1 -0
  25. package/dist/enums/punchout-vocabularies-get-name.d.mts +1 -0
  26. package/dist/enums/punchout-vocabularies-get-name.d.ts +1 -0
  27. package/dist/enums/punchout-vocabularies-get-name.js +1 -0
  28. package/dist/enums/punchout-vocabularies-get-name.js.map +1 -1
  29. package/dist/enums/punchout-vocabularies-get-name.mjs +1 -0
  30. package/dist/enums/punchout-vocabularies-get-name.mjs.map +1 -1
  31. package/dist/index.d.mts +3 -0
  32. package/dist/index.d.ts +3 -0
  33. package/dist/index.js +15 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +3 -0
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/models.d.mts +160 -12
  38. package/dist/models.d.ts +160 -12
  39. package/dist/services/ads-accounts.d.mts +1 -0
  40. package/dist/services/ads-accounts.d.ts +1 -0
  41. package/dist/services/ads-conversions.d.mts +1 -0
  42. package/dist/services/ads-conversions.d.ts +1 -0
  43. package/dist/services/ads-feeds.d.mts +1 -0
  44. package/dist/services/ads-feeds.d.ts +1 -0
  45. package/dist/services/ads-jobs.d.mts +1 -0
  46. package/dist/services/ads-jobs.d.ts +1 -0
  47. package/dist/services/ads-links.d.mts +1 -0
  48. package/dist/services/ads-links.d.ts +1 -0
  49. package/dist/services/ads-rules.d.mts +1 -0
  50. package/dist/services/ads-rules.d.ts +1 -0
  51. package/dist/services/ads-spend.d.mts +1 -0
  52. package/dist/services/ads-spend.d.ts +1 -0
  53. package/dist/services/ads-syncs.d.mts +1 -0
  54. package/dist/services/ads-syncs.d.ts +1 -0
  55. package/dist/services/ads-vocabularies.d.mts +1 -0
  56. package/dist/services/ads-vocabularies.d.ts +1 -0
  57. package/dist/services/apps.d.mts +1 -0
  58. package/dist/services/apps.d.ts +1 -0
  59. package/dist/services/audiences-audiences.d.mts +1 -0
  60. package/dist/services/audiences-audiences.d.ts +1 -0
  61. package/dist/services/audiences-members.d.mts +1 -0
  62. package/dist/services/audiences-members.d.ts +1 -0
  63. package/dist/services/audiences-rules.d.mts +1 -0
  64. package/dist/services/audiences-rules.d.ts +1 -0
  65. package/dist/services/audit.d.mts +1 -0
  66. package/dist/services/audit.d.ts +1 -0
  67. package/dist/services/avatars.d.mts +1 -0
  68. package/dist/services/avatars.d.ts +1 -0
  69. package/dist/services/campaigns-assets.d.mts +1 -0
  70. package/dist/services/campaigns-assets.d.ts +1 -0
  71. package/dist/services/campaigns-attribution.d.mts +1 -0
  72. package/dist/services/campaigns-attribution.d.ts +1 -0
  73. package/dist/services/campaigns-budgets.d.mts +1 -0
  74. package/dist/services/campaigns-budgets.d.ts +1 -0
  75. package/dist/services/campaigns-calendar.d.mts +1 -0
  76. package/dist/services/campaigns-calendar.d.ts +1 -0
  77. package/dist/services/campaigns-campaigns.d.mts +1 -0
  78. package/dist/services/campaigns-campaigns.d.ts +1 -0
  79. package/dist/services/campaigns-spend.d.mts +1 -0
  80. package/dist/services/campaigns-spend.d.ts +1 -0
  81. package/dist/services/campaigns-tasks.d.mts +1 -0
  82. package/dist/services/campaigns-tasks.d.ts +1 -0
  83. package/dist/services/campaigns-touches.d.mts +1 -0
  84. package/dist/services/campaigns-touches.d.ts +1 -0
  85. package/dist/services/campaigns-vocabularies.d.mts +1 -0
  86. package/dist/services/campaigns-vocabularies.d.ts +1 -0
  87. package/dist/services/carts-io.d.mts +1 -0
  88. package/dist/services/carts-io.d.ts +1 -0
  89. package/dist/services/carts-items.d.mts +1 -0
  90. package/dist/services/carts-items.d.ts +1 -0
  91. package/dist/services/carts.d.mts +1 -0
  92. package/dist/services/carts.d.ts +1 -0
  93. package/dist/services/channels.d.mts +1 -0
  94. package/dist/services/channels.d.ts +1 -0
  95. package/dist/services/consent-manager-delivery.d.mts +1 -0
  96. package/dist/services/consent-manager-delivery.d.ts +1 -0
  97. package/dist/services/consent-manager-policy.d.mts +1 -0
  98. package/dist/services/consent-manager-policy.d.ts +1 -0
  99. package/dist/services/consent-manager-records.d.mts +1 -0
  100. package/dist/services/consent-manager-records.d.ts +1 -0
  101. package/dist/services/consent-manager-registry.d.mts +1 -0
  102. package/dist/services/consent-manager-registry.d.ts +1 -0
  103. package/dist/services/cost-centers.d.mts +9 -8
  104. package/dist/services/cost-centers.d.ts +9 -8
  105. package/dist/services/cost-centers.js +19 -13
  106. package/dist/services/cost-centers.js.map +1 -1
  107. package/dist/services/cost-centers.mjs +19 -13
  108. package/dist/services/cost-centers.mjs.map +1 -1
  109. package/dist/services/customers-contacts.d.mts +1 -0
  110. package/dist/services/customers-contacts.d.ts +1 -0
  111. package/dist/services/customers-follow-ups.d.mts +1 -0
  112. package/dist/services/customers-follow-ups.d.ts +1 -0
  113. package/dist/services/customers-leads.d.mts +1 -0
  114. package/dist/services/customers-leads.d.ts +1 -0
  115. package/dist/services/customers-organizations.d.mts +1 -0
  116. package/dist/services/customers-organizations.d.ts +1 -0
  117. package/dist/services/customers-roles.d.mts +1 -0
  118. package/dist/services/customers-roles.d.ts +1 -0
  119. package/dist/services/customers-segments.d.mts +1 -0
  120. package/dist/services/customers-segments.d.ts +1 -0
  121. package/dist/services/customers-value-lists.d.mts +1 -0
  122. package/dist/services/customers-value-lists.d.ts +1 -0
  123. package/dist/services/customers.d.mts +1 -0
  124. package/dist/services/customers.d.ts +1 -0
  125. package/dist/services/documents-kinds.d.mts +1 -0
  126. package/dist/services/documents-kinds.d.ts +1 -0
  127. package/dist/services/documents-register.d.mts +1 -0
  128. package/dist/services/documents-register.d.ts +1 -0
  129. package/dist/services/events.d.mts +1 -0
  130. package/dist/services/events.d.ts +1 -0
  131. package/dist/services/forms.d.mts +1 -0
  132. package/dist/services/forms.d.ts +1 -0
  133. package/dist/services/health.d.mts +1 -0
  134. package/dist/services/health.d.ts +1 -0
  135. package/dist/services/inventories-locations.d.mts +1 -0
  136. package/dist/services/inventories-locations.d.ts +1 -0
  137. package/dist/services/inventories-reservations.d.mts +1 -0
  138. package/dist/services/inventories-reservations.d.ts +1 -0
  139. package/dist/services/inventories-stock.d.mts +1 -0
  140. package/dist/services/inventories-stock.d.ts +1 -0
  141. package/dist/services/io.d.mts +1 -0
  142. package/dist/services/io.d.ts +1 -0
  143. package/dist/services/journeys-enrollments.d.mts +1 -0
  144. package/dist/services/journeys-enrollments.d.ts +1 -0
  145. package/dist/services/journeys-jobs.d.mts +1 -0
  146. package/dist/services/journeys-jobs.d.ts +1 -0
  147. package/dist/services/journeys-journeys.d.mts +1 -0
  148. package/dist/services/journeys-journeys.d.ts +1 -0
  149. package/dist/services/journeys-stats.d.mts +1 -0
  150. package/dist/services/journeys-stats.d.ts +1 -0
  151. package/dist/services/journeys-steps.d.mts +1 -0
  152. package/dist/services/journeys-steps.d.ts +1 -0
  153. package/dist/services/journeys-templates.d.mts +1 -0
  154. package/dist/services/journeys-templates.d.ts +1 -0
  155. package/dist/services/journeys-timeline.d.mts +1 -0
  156. package/dist/services/journeys-timeline.d.ts +1 -0
  157. package/dist/services/journeys-versions.d.mts +1 -0
  158. package/dist/services/journeys-versions.d.ts +1 -0
  159. package/dist/services/journeys-vocabularies.d.mts +1 -0
  160. package/dist/services/journeys-vocabularies.d.ts +1 -0
  161. package/dist/services/journeys-watches.d.mts +1 -0
  162. package/dist/services/journeys-watches.d.ts +1 -0
  163. package/dist/services/locale.d.mts +1 -0
  164. package/dist/services/locale.d.ts +1 -0
  165. package/dist/services/loyalty-bonus.d.mts +1 -0
  166. package/dist/services/loyalty-bonus.d.ts +1 -0
  167. package/dist/services/loyalty-jobs.d.mts +1 -0
  168. package/dist/services/loyalty-jobs.d.ts +1 -0
  169. package/dist/services/loyalty-memberships.d.mts +1 -0
  170. package/dist/services/loyalty-memberships.d.ts +1 -0
  171. package/dist/services/loyalty-points.d.mts +1 -0
  172. package/dist/services/loyalty-points.d.ts +1 -0
  173. package/dist/services/loyalty-programs.d.mts +1 -0
  174. package/dist/services/loyalty-programs.d.ts +1 -0
  175. package/dist/services/loyalty-referrals.d.mts +1 -0
  176. package/dist/services/loyalty-referrals.d.ts +1 -0
  177. package/dist/services/loyalty-rewards.d.mts +1 -0
  178. package/dist/services/loyalty-rewards.d.ts +1 -0
  179. package/dist/services/loyalty-tiers.d.mts +1 -0
  180. package/dist/services/loyalty-tiers.d.ts +1 -0
  181. package/dist/services/loyalty-vocabularies.d.mts +1 -0
  182. package/dist/services/loyalty-vocabularies.d.ts +1 -0
  183. package/dist/services/mailings-analysis.d.mts +1 -0
  184. package/dist/services/mailings-analysis.d.ts +1 -0
  185. package/dist/services/mailings-blocks.d.mts +1 -0
  186. package/dist/services/mailings-blocks.d.ts +1 -0
  187. package/dist/services/mailings-health.d.mts +1 -0
  188. package/dist/services/mailings-health.d.ts +1 -0
  189. package/dist/services/mailings-mailings.d.mts +1 -0
  190. package/dist/services/mailings-mailings.d.ts +1 -0
  191. package/dist/services/mailings-recipients.d.mts +1 -0
  192. package/dist/services/mailings-recipients.d.ts +1 -0
  193. package/dist/services/mailings-send.d.mts +1 -0
  194. package/dist/services/mailings-send.d.ts +1 -0
  195. package/dist/services/mailings-variants.d.mts +1 -0
  196. package/dist/services/mailings-variants.d.ts +1 -0
  197. package/dist/services/mailings-vocabularies.d.mts +1 -0
  198. package/dist/services/mailings-vocabularies.d.ts +1 -0
  199. package/dist/services/marketing-consents-evidence.d.mts +1 -0
  200. package/dist/services/marketing-consents-evidence.d.ts +1 -0
  201. package/dist/services/marketing-consents-subscriptions.d.mts +1 -0
  202. package/dist/services/marketing-consents-subscriptions.d.ts +1 -0
  203. package/dist/services/marketing-consents-types.d.mts +1 -0
  204. package/dist/services/marketing-consents-types.d.ts +1 -0
  205. package/dist/services/markets.d.mts +5 -4
  206. package/dist/services/markets.d.ts +5 -4
  207. package/dist/services/markets.js.map +1 -1
  208. package/dist/services/markets.mjs.map +1 -1
  209. package/dist/services/messaging.d.mts +1 -0
  210. package/dist/services/messaging.d.ts +1 -0
  211. package/dist/services/orderlists.d.mts +1 -0
  212. package/dist/services/orderlists.d.ts +1 -0
  213. package/dist/services/orders.d.mts +1 -0
  214. package/dist/services/orders.d.ts +1 -0
  215. package/dist/services/pages-collaboration.d.mts +1 -0
  216. package/dist/services/pages-collaboration.d.ts +1 -0
  217. package/dist/services/pages-delivery.d.mts +1 -0
  218. package/dist/services/pages-delivery.d.ts +1 -0
  219. package/dist/services/pages-editor.d.mts +1 -0
  220. package/dist/services/pages-editor.d.ts +1 -0
  221. package/dist/services/pages.d.mts +1 -0
  222. package/dist/services/pages.d.ts +1 -0
  223. package/dist/services/payments-ledger.d.mts +1 -0
  224. package/dist/services/payments-ledger.d.ts +1 -0
  225. package/dist/services/payments-methods.d.mts +20 -0
  226. package/dist/services/payments-methods.d.ts +20 -0
  227. package/dist/services/payments-methods.js +24 -0
  228. package/dist/services/payments-methods.js.map +1 -1
  229. package/dist/services/payments-methods.mjs +24 -0
  230. package/dist/services/payments-methods.mjs.map +1 -1
  231. package/dist/services/payments-providers.d.mts +3 -2
  232. package/dist/services/payments-providers.d.ts +3 -2
  233. package/dist/services/payments-providers.js.map +1 -1
  234. package/dist/services/payments-providers.mjs.map +1 -1
  235. package/dist/services/prices.d.mts +1 -0
  236. package/dist/services/prices.d.ts +1 -0
  237. package/dist/services/procurement.d.mts +1 -0
  238. package/dist/services/procurement.d.ts +1 -0
  239. package/dist/services/products-assets.d.mts +1 -0
  240. package/dist/services/products-assets.d.ts +1 -0
  241. package/dist/services/products-categories.d.mts +1 -0
  242. package/dist/services/products-categories.d.ts +1 -0
  243. package/dist/services/products-data-model.d.mts +20 -0
  244. package/dist/services/products-data-model.d.ts +20 -0
  245. package/dist/services/products-data-model.js +29 -0
  246. package/dist/services/products-data-model.js.map +1 -1
  247. package/dist/services/products-data-model.mjs +29 -0
  248. package/dist/services/products-data-model.mjs.map +1 -1
  249. package/dist/services/products-manufacturers.d.mts +1 -0
  250. package/dist/services/products-manufacturers.d.ts +1 -0
  251. package/dist/services/products-references.d.mts +1 -0
  252. package/dist/services/products-references.d.ts +1 -0
  253. package/dist/services/products.d.mts +20 -0
  254. package/dist/services/products.d.ts +20 -0
  255. package/dist/services/products.js +24 -0
  256. package/dist/services/products.js.map +1 -1
  257. package/dist/services/products.mjs +24 -0
  258. package/dist/services/products.mjs.map +1 -1
  259. package/dist/services/promotions-evaluation.d.mts +1 -0
  260. package/dist/services/promotions-evaluation.d.ts +1 -0
  261. package/dist/services/promotions-promotions.d.mts +1 -0
  262. package/dist/services/promotions-promotions.d.ts +1 -0
  263. package/dist/services/promotions-redemptions.d.mts +1 -0
  264. package/dist/services/promotions-redemptions.d.ts +1 -0
  265. package/dist/services/promotions-vouchers.d.mts +1 -0
  266. package/dist/services/promotions-vouchers.d.ts +1 -0
  267. package/dist/services/punchout.d.mts +4 -3
  268. package/dist/services/punchout.d.ts +4 -3
  269. package/dist/services/punchout.js +1 -1
  270. package/dist/services/punchout.js.map +1 -1
  271. package/dist/services/punchout.mjs +1 -1
  272. package/dist/services/punchout.mjs.map +1 -1
  273. package/dist/services/quotes-acceptance.d.mts +1 -0
  274. package/dist/services/quotes-acceptance.d.ts +1 -0
  275. package/dist/services/quotes-pricing.d.mts +1 -0
  276. package/dist/services/quotes-pricing.d.ts +1 -0
  277. package/dist/services/quotes-quotes.d.mts +1 -0
  278. package/dist/services/quotes-quotes.d.ts +1 -0
  279. package/dist/services/quotes-ranges.d.mts +1 -0
  280. package/dist/services/quotes-ranges.d.ts +1 -0
  281. package/dist/services/quotes-trail.d.mts +1 -0
  282. package/dist/services/quotes-trail.d.ts +1 -0
  283. package/dist/services/reviews-aggregates.d.mts +1 -0
  284. package/dist/services/reviews-aggregates.d.ts +1 -0
  285. package/dist/services/reviews-jobs.d.mts +1 -0
  286. package/dist/services/reviews-jobs.d.ts +1 -0
  287. package/dist/services/reviews-moderation.d.mts +1 -0
  288. package/dist/services/reviews-moderation.d.ts +1 -0
  289. package/dist/services/reviews-privacy.d.mts +1 -0
  290. package/dist/services/reviews-privacy.d.ts +1 -0
  291. package/dist/services/reviews-products.d.mts +1 -0
  292. package/dist/services/reviews-products.d.ts +1 -0
  293. package/dist/services/reviews-requests.d.mts +1 -0
  294. package/dist/services/reviews-requests.d.ts +1 -0
  295. package/dist/services/reviews-reviews.d.mts +1 -0
  296. package/dist/services/reviews-reviews.d.ts +1 -0
  297. package/dist/services/reviews-vocabularies.d.mts +1 -0
  298. package/dist/services/reviews-vocabularies.d.ts +1 -0
  299. package/dist/services/sales-reps-acting-for.d.mts +1 -0
  300. package/dist/services/sales-reps-acting-for.d.ts +1 -0
  301. package/dist/services/sales-reps-coverage.d.mts +1 -0
  302. package/dist/services/sales-reps-coverage.d.ts +1 -0
  303. package/dist/services/sales-reps-roster.d.mts +1 -0
  304. package/dist/services/sales-reps-roster.d.ts +1 -0
  305. package/dist/services/search.d.mts +1 -0
  306. package/dist/services/search.d.ts +1 -0
  307. package/dist/services/settings.d.mts +1 -0
  308. package/dist/services/settings.d.ts +1 -0
  309. package/dist/services/shipping-carriers.d.mts +1 -0
  310. package/dist/services/shipping-carriers.d.ts +1 -0
  311. package/dist/services/shipping-methods.d.mts +5 -4
  312. package/dist/services/shipping-methods.d.ts +5 -4
  313. package/dist/services/shipping-methods.js.map +1 -1
  314. package/dist/services/shipping-methods.mjs.map +1 -1
  315. package/dist/services/shipping-value-lists.d.mts +1 -0
  316. package/dist/services/shipping-value-lists.d.ts +1 -0
  317. package/dist/services/sites.d.mts +1 -0
  318. package/dist/services/sites.d.ts +1 -0
  319. package/dist/services/storage.d.mts +1 -0
  320. package/dist/services/storage.d.ts +1 -0
  321. package/dist/services/tag-manager-container.d.mts +1 -0
  322. package/dist/services/tag-manager-container.d.ts +1 -0
  323. package/dist/services/tag-manager-delivery.d.mts +1 -0
  324. package/dist/services/tag-manager-delivery.d.ts +1 -0
  325. package/dist/services/tag-manager-tags.d.mts +1 -0
  326. package/dist/services/tag-manager-tags.d.ts +1 -0
  327. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/payments-providers.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Variant } from '../enums/variant';\n\nexport class PaymentsProviders {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Answers the SVG document for a catalog provider code (a shipped assets/logos/{code}.svg, otherwise a generated monogram tile), with content-type image/svg+xml and a one-day cache. For a connector whose brand files are on the platform CDN it redirects (302) there instead: to the full logo, or with `?variant=symbol` to the square symbol. It is the one route in this app that needs no tenant identity: the logos are bundled with the app rather than owned by anyone, so nothing here is tenant data and no key or tenant header is required to fetch one — which is what lets a storefront or a Cockpit screen point an <img> straight at it. Called directly on the app domain (https://revenexx-payments.apps.revenexx.io/payments/logos/stripe) the response carries its real content-type; through the gateway the body is passed through but labelled application/json, so use the app domain for <img> sources.\n *\n * @param {string} params.slug - A catalog provider code, as GET /payments/providers/catalog lists it. Case-insensitive, and a trailing '.svg' is ignored. Not tenant data: the logos ship with the app and are identical for everyone.\n * @param {Variant} params.variant - Which image of a connector with brand files on the CDN to redirect to: the full `logo` (default) or the square `symbol`. Without uploaded files both answer the same monogram tile.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsLogosGet(params: { slug: string, variant?: Variant }): Promise<{}>;\n /**\n * Answers the SVG document for a catalog provider code (a shipped assets/logos/{code}.svg, otherwise a generated monogram tile), with content-type image/svg+xml and a one-day cache. For a connector whose brand files are on the platform CDN it redirects (302) there instead: to the full logo, or with `?variant=symbol` to the square symbol. It is the one route in this app that needs no tenant identity: the logos are bundled with the app rather than owned by anyone, so nothing here is tenant data and no key or tenant header is required to fetch one — which is what lets a storefront or a Cockpit screen point an <img> straight at it. Called directly on the app domain (https://revenexx-payments.apps.revenexx.io/payments/logos/stripe) the response carries its real content-type; through the gateway the body is passed through but labelled application/json, so use the app domain for <img> sources.\n *\n * @param {string} slug - A catalog provider code, as GET /payments/providers/catalog lists it. Case-insensitive, and a trailing '.svg' is ignored. Not tenant data: the logos ship with the app and are identical for everyone.\n * @param {Variant} variant - Which image of a connector with brand files on the CDN to redirect to: the full `logo` (default) or the square `symbol`. Without uploaded files both answer the same monogram tile.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsLogosGet(slug: string, variant?: Variant): Promise<{}>;\n paymentsLogosGet(\n paramsOrFirst: { slug: string, variant?: Variant } | string,\n ...rest: [(Variant)?] \n ): Promise<{}> {\n let params: { slug: string, variant?: Variant };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { slug: string, variant?: Variant };\n } else {\n params = {\n slug: paramsOrFirst as string,\n variant: rest[0] as Variant \n };\n }\n \n const slug = params.slug;\n const variant = params.variant;\n\n if (typeof slug === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"slug\"');\n }\n\n const apiPath = '/v1/payments/logos/{slug}'.replace('{slug}', slug);\n const apiPayload: Payload = {};\n if (typeof variant !== 'undefined') {\n apiPayload['variant'] = variant;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. Only the public columns, `limit`, `offset` and `order` are query parameters; anything else — a secret column included — answers 400 `unknown_filter`, whatever its value.\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} params.provider - Exact provider code.\n * @param {boolean} params.enabled - Restrict to enabled or disabled providers.\n * @param {boolean} params.testMode - Restrict to sandbox or live configurations.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersList(params?: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean }): Promise<{}>;\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. Only the public columns, `limit`, `offset` and `order` are query parameters; anything else — a secret column included — answers 400 `unknown_filter`, whatever its value.\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} provider - Exact provider code.\n * @param {boolean} enabled - Restrict to enabled or disabled providers.\n * @param {boolean} testMode - Restrict to sandbox or live configurations.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersList(limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean): Promise<{}>;\n paymentsProvidersList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean } | number,\n ...rest: [(number)?, (string)?, (string)?, (boolean)?, (boolean)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n provider: rest[2] as string,\n enabled: rest[3] as boolean,\n testMode: rest[4] as boolean \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const provider = params.provider;\n const enabled = params.enabled;\n const testMode = params.testMode;\n\n\n const apiPath = '/v1/payments/providers';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Activates one PSP account of this tenant. The `provider` code is not free text: it has to be one the catalog carries, and anything else is refused with 400 and a message listing the codes that are — so GET /payments/providers/catalog is the call that comes first, both for the code itself and for the credential field names this provider expects. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} params.provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {object} params.credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} params.enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} params.name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. null, omitted or empty falls back to the catalog label.\n * @param {object} params.options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {boolean} params.testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} params.webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersCreate(params: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string }): Promise<Models.PaymentProvider>;\n /**\n * Activates one PSP account of this tenant. The `provider` code is not free text: it has to be one the catalog carries, and anything else is refused with 400 and a message listing the codes that are — so GET /payments/providers/catalog is the call that comes first, both for the code itself and for the credential field names this provider expects. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {object} credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. null, omitted or empty falls back to the catalog label.\n * @param {object} options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {boolean} testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersCreate(provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string): Promise<Models.PaymentProvider>;\n paymentsProvidersCreate(\n paramsOrFirst: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string } | string,\n ...rest: [(object)?, (boolean)?, (string)?, (object)?, (boolean)?, (string)?] \n ): Promise<Models.PaymentProvider> {\n let params: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string };\n } else {\n params = {\n provider: paramsOrFirst as string,\n credentials: rest[0] as object,\n enabled: rest[1] as boolean,\n name: rest[2] as string,\n options: rest[3] as object,\n testMode: rest[4] as boolean,\n webhookSecret: rest[5] as string \n };\n }\n \n const provider = params.provider;\n const credentials = params.credentials;\n const enabled = params.enabled;\n const name = params.name;\n const options = params.options;\n const testMode = params.testMode;\n const webhookSecret = params.webhookSecret;\n\n if (typeof provider === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/v1/payments/providers';\n const apiPayload: Payload = {};\n if (typeof credentials !== 'undefined') {\n apiPayload['credentials'] = credentials;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof options !== 'undefined') {\n apiPayload['options'] = options;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n if (typeof webhookSecret !== 'undefined') {\n apiPayload['webhook_secret'] = webhookSecret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The connectors this app offers, presented for a picker: EU-headquartered providers first by rank (Novalnet and Mollie lead), then the rest of Europe, then everything else — every entry says its `region`, `hq_country` and whom it is `recommended_for`. Read it to build the \"add provider\" picker and the credentials form: `credential_schema` is the labelled list of keys to put inside `credentials` (with help text, whether each is required and whether it is a secret), and `credential_fields` the same names as a flat list. Codes POST /payments/providers accepts are these plus the built-in `mock`; nothing is listed that the bundled driver cannot run, and a code the app knows but does not offer is refused on create (422 `provider_not_offered`). It says nothing secret about this tenant — only which codes it already has (`configured`, `addable`). `testable` says whether POST /payments/providers/{id}/check can check it. Answers an `ETag`; send it back as `If-None-Match` for a 304.\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersCatalog(): Promise<{}> {\n\n const apiPath = '/v1/payments/providers/catalog';\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Removes the PSP account row and its stored secrets, once nothing depends on it any more. The three tables of this app carry no foreign keys at all: a payment names its method by `method_code` and its acquirer by `provider`, both plain text, because a payment records what happened and has to survive the configuration it was made with. So the database will not stop this — whatever the ledger still names, it goes on naming. So the database will not stop this and the count is taken HERE, exactly as DELETE /payments/methods/{id} takes it, and answered as one 409 carrying both numbers. Counted first: every payment still in a status a transition starts from — created, requires_action, authorized or captured — because capture, cancel and refund all resolve the provider BY CODE and would answer 422 `provider_not_configured` with the row gone, leaving an authorization that can neither be collected nor released and a captured payment that can no longer be refunded here at all. Counted second: every payment method naming this provider, because POST /payments/methods/eligible does not check providers, so a checkout would go on offering a method whose next POST /payments fails at authorization unless the tenant's `fallback_provider` names one that is still configured. What is deliberately NOT counted is a settled payment — failed, cancelled or refunded: no transition starts there, so nothing will ask this provider about it again, and a `provider` code is closed catalog data that goes on meaning Stripe or PayPal with no configuration behind it. The refusal names `enabled: false` because that is usually what was meant: a disabled provider stops taking NEW payments exactly as a deleted one does, and every transition on the payments it already holds keeps working, since only the create path asks whether it is enabled.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersDelete(params: { id: string }): Promise<{}>;\n /**\n * Removes the PSP account row and its stored secrets, once nothing depends on it any more. The three tables of this app carry no foreign keys at all: a payment names its method by `method_code` and its acquirer by `provider`, both plain text, because a payment records what happened and has to survive the configuration it was made with. So the database will not stop this — whatever the ledger still names, it goes on naming. So the database will not stop this and the count is taken HERE, exactly as DELETE /payments/methods/{id} takes it, and answered as one 409 carrying both numbers. Counted first: every payment still in a status a transition starts from — created, requires_action, authorized or captured — because capture, cancel and refund all resolve the provider BY CODE and would answer 422 `provider_not_configured` with the row gone, leaving an authorization that can neither be collected nor released and a captured payment that can no longer be refunded here at all. Counted second: every payment method naming this provider, because POST /payments/methods/eligible does not check providers, so a checkout would go on offering a method whose next POST /payments fails at authorization unless the tenant's `fallback_provider` names one that is still configured. What is deliberately NOT counted is a settled payment — failed, cancelled or refunded: no transition starts there, so nothing will ask this provider about it again, and a `provider` code is closed catalog data that goes on meaning Stripe or PayPal with no configuration behind it. The refusal names `enabled: false` because that is usually what was meant: a disabled provider stops taking NEW payments exactly as a deleted one does, and every transition on the payments it already holds keeps working, since only the create path asks whether it is enabled.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersDelete(id: string): Promise<{}>;\n paymentsProvidersDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersGet(params: { id: string }): Promise<Models.PaymentProvider>;\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersGet(id: string): Promise<Models.PaymentProvider>;\n paymentsProvidersGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PaymentProvider> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A partial write: omitted fields keep their value. Three things are changed here in practice — the `credentials` (and `webhook_secret`) when a key is rotated, `test_mode` when an account moves from the PSP's sandbox to live, and `enabled` when it is switched on or taken out of service. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. One field is not like the others: `provider` is the CODE every payment and every method resolves this PSP by, so writing a different one is the delete through another door and is refused with the same 409 while anything still names the current code. Switching acquirer is a second configuration plus `enabled: false` on this one, never a rename.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @param {object} params.credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} params.enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} params.name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. Written straight to the database, which refuses an empty one.\n * @param {object} params.options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {string} params.provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {boolean} params.testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} params.webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersUpdate(params: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string }): Promise<Models.PaymentProvider>;\n /**\n * A partial write: omitted fields keep their value. Three things are changed here in practice — the `credentials` (and `webhook_secret`) when a key is rotated, `test_mode` when an account moves from the PSP's sandbox to live, and `enabled` when it is switched on or taken out of service. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. One field is not like the others: `provider` is the CODE every payment and every method resolves this PSP by, so writing a different one is the delete through another door and is refused with the same 409 while anything still names the current code. Switching acquirer is a second configuration plus `enabled: false` on this one, never a rename.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @param {object} credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. Written straight to the database, which refuses an empty one.\n * @param {object} options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {string} provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {boolean} testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersUpdate(id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string): Promise<Models.PaymentProvider>;\n paymentsProvidersUpdate(\n paramsOrFirst: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string } | string,\n ...rest: [(object)?, (boolean)?, (string)?, (object)?, (string)?, (boolean)?, (string)?] \n ): Promise<Models.PaymentProvider> {\n let params: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n credentials: rest[0] as object,\n enabled: rest[1] as boolean,\n name: rest[2] as string,\n options: rest[3] as object,\n provider: rest[4] as string,\n testMode: rest[5] as boolean,\n webhookSecret: rest[6] as string \n };\n }\n \n const id = params.id;\n const credentials = params.credentials;\n const enabled = params.enabled;\n const name = params.name;\n const options = params.options;\n const provider = params.provider;\n const testMode = params.testMode;\n const webhookSecret = params.webhookSecret;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof credentials !== 'undefined') {\n apiPayload['credentials'] = credentials;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof options !== 'undefined') {\n apiPayload['options'] = options;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n if (typeof webhookSecret !== 'undefined') {\n apiPayload['webhook_secret'] = webhookSecret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * \"Verbindung prüfen\": one cheap authenticated call to the provider in the configuration's own environment (sandbox in test mode, live otherwise) — Stripe reads its balance, PayPal issues an access token, Novalnet reads the merchant details. Nothing is charged and nothing is created at the provider. The outcome is stored as `options.last_check` `{ at, ok, code, environment }` and answered with the configuration; `code` is ok, auth_failed, environment_mismatch (a live key on a test-mode provider or the reverse), missing_credentials, unreachable or provider_error. Credentials appear in no answer and no log. Only connectors the catalog marks `testable` can be checked.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProviderCheck>}\n */\n paymentsProvidersCheck(params: { id: string }): Promise<Models.PaymentProviderCheck>;\n /**\n * \"Verbindung prüfen\": one cheap authenticated call to the provider in the configuration's own environment (sandbox in test mode, live otherwise) — Stripe reads its balance, PayPal issues an access token, Novalnet reads the merchant details. Nothing is charged and nothing is created at the provider. The outcome is stored as `options.last_check` `{ at, ok, code, environment }` and answered with the configuration; `code` is ok, auth_failed, environment_mismatch (a live key on a test-mode provider or the reverse), missing_credentials, unreachable or provider_error. Credentials appear in no answer and no log. Only connectors the catalog marks `testable` can be checked.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProviderCheck>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersCheck(id: string): Promise<Models.PaymentProviderCheck>;\n paymentsProvidersCheck(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PaymentProviderCheck> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}/check'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/services/payments-providers.ts"],"names":[],"mappings":"AAAA,SAAS,yBAA+D;AAKjE,MAAM,kBAAkB;AAAA,EAG3B,YAAY,QAAgB;AACxB,SAAK,SAAS;AAAA,EAClB;AAAA,EAqBA,iBACI,kBACG,MACQ;AACX,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,MAAM;AAAA,QACN,SAAS,KAAK,CAAC;AAAA,MACnB;AAAA,IACJ;AAEA,UAAM,OAAO,OAAO;AACpB,UAAM,UAAU,OAAO;AAEvB,QAAI,OAAO,SAAS,aAAa;AAC7B,YAAM,IAAI,kBAAkB,oCAAoC;AAAA,IACpE;AAEA,UAAM,UAAU,4BAA4B,QAAQ,UAAU,IAAI;AAClE,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EA6BA,sBACI,kBACG,MACQ;AACX,QAAI;AAEJ,QAAI,CAAC,iBAAkB,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACzG,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,OAAO;AAAA,QACP,QAAQ,KAAK,CAAC;AAAA,QACd,OAAO,KAAK,CAAC;AAAA,QACb,UAAU,KAAK,CAAC;AAAA,QAChB,SAAS,KAAK,CAAC;AAAA,QACf,UAAU,KAAK,CAAC;AAAA,MACpB;AAAA,IACJ;AAEA,UAAM,QAAQ,OAAO;AACrB,UAAM,SAAS,OAAO;AACtB,UAAM,QAAQ,OAAO;AACrB,UAAM,WAAW,OAAO;AACxB,UAAM,UAAU,OAAO;AACvB,UAAM,WAAW,OAAO;AAGxB,UAAM,UAAU;AAChB,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,QAAI,OAAO,WAAW,aAAa;AAC/B,iBAAW,QAAQ,IAAI;AAAA,IAC3B;AACA,QAAI,OAAO,UAAU,aAAa;AAC9B,iBAAW,OAAO,IAAI;AAAA,IAC1B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,WAAW,IAAI;AAAA,IAC9B;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EA+BA,wBACI,kBACG,MAC4B;AAC/B,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,UAAU;AAAA,QACV,aAAa,KAAK,CAAC;AAAA,QACnB,SAAS,KAAK,CAAC;AAAA,QACf,MAAM,KAAK,CAAC;AAAA,QACZ,SAAS,KAAK,CAAC;AAAA,QACf,UAAU,KAAK,CAAC;AAAA,QAChB,eAAe,KAAK,CAAC;AAAA,MACzB;AAAA,IACJ;AAEA,UAAM,WAAW,OAAO;AACxB,UAAM,cAAc,OAAO;AAC3B,UAAM,UAAU,OAAO;AACvB,UAAM,OAAO,OAAO;AACpB,UAAM,UAAU,OAAO;AACvB,UAAM,WAAW,OAAO;AACxB,UAAM,gBAAgB,OAAO;AAE7B,QAAI,OAAO,aAAa,aAAa;AACjC,YAAM,IAAI,kBAAkB,wCAAwC;AAAA,IACxE;AAEA,UAAM,UAAU;AAChB,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAW,aAAa,IAAI;AAAA,IAChC;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,iBAAW,MAAM,IAAI;AAAA,IACzB;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,WAAW,IAAI;AAAA,IAC9B;AACA,QAAI,OAAO,kBAAkB,aAAa;AACtC,iBAAW,gBAAgB,IAAI;AAAA,IACnC;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C;AAAA,MAC7C,gBAAgB;AAAA,IACpB;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,2BAAwC;AAEpC,UAAM,UAAU;AAChB,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAmBA,wBACI,eACW;AACX,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,IAAI;AAAA,MACR;AAAA,IACJ;AAEA,UAAM,KAAK,OAAO;AAElB,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,8BAA8B,QAAQ,QAAQ,EAAE;AAChE,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAmBA,qBACI,eAC+B;AAC/B,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,IAAI;AAAA,MACR;AAAA,IACJ;AAEA,UAAM,KAAK,OAAO;AAElB,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,8BAA8B,QAAQ,QAAQ,EAAE;AAChE,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAiCA,wBACI,kBACG,MAC4B;AAC/B,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,IAAI;AAAA,QACJ,aAAa,KAAK,CAAC;AAAA,QACnB,SAAS,KAAK,CAAC;AAAA,QACf,MAAM,KAAK,CAAC;AAAA,QACZ,SAAS,KAAK,CAAC;AAAA,QACf,UAAU,KAAK,CAAC;AAAA,QAChB,UAAU,KAAK,CAAC;AAAA,QAChB,eAAe,KAAK,CAAC;AAAA,MACzB;AAAA,IACJ;AAEA,UAAM,KAAK,OAAO;AAClB,UAAM,cAAc,OAAO;AAC3B,UAAM,UAAU,OAAO;AACvB,UAAM,OAAO,OAAO;AACpB,UAAM,UAAU,OAAO;AACvB,UAAM,WAAW,OAAO;AACxB,UAAM,WAAW,OAAO;AACxB,UAAM,gBAAgB,OAAO;AAE7B,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,8BAA8B,QAAQ,QAAQ,EAAE;AAChE,UAAM,aAAsB,CAAC;AAC7B,QAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAW,aAAa,IAAI;AAAA,IAChC;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,SAAS,aAAa;AAC7B,iBAAW,MAAM,IAAI;AAAA,IACzB;AACA,QAAI,OAAO,YAAY,aAAa;AAChC,iBAAW,SAAS,IAAI;AAAA,IAC5B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,UAAU,IAAI;AAAA,IAC7B;AACA,QAAI,OAAO,aAAa,aAAa;AACjC,iBAAW,WAAW,IAAI;AAAA,IAC9B;AACA,QAAI,OAAO,kBAAkB,aAAa;AACtC,iBAAW,gBAAgB,IAAI;AAAA,IACnC;AACA,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C;AAAA,MAC7C,gBAAgB;AAAA,IACpB;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAmBA,uBACI,eACoC;AACpC,QAAI;AAEJ,QAAK,iBAAiB,OAAO,kBAAkB,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAI;AACvF,eAAU,iBAAiB,CAAC;AAAA,IAChC,OAAO;AACH,eAAS;AAAA,QACL,IAAI;AAAA,MACR;AAAA,IACJ;AAEA,UAAM,KAAK,OAAO;AAElB,QAAI,OAAO,OAAO,aAAa;AAC3B,YAAM,IAAI,kBAAkB,kCAAkC;AAAA,IAClE;AAEA,UAAM,UAAU,oCAAoC,QAAQ,QAAQ,EAAE;AACtE,UAAM,aAAsB,CAAC;AAC7B,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,WAAW,OAAO;AAEzD,UAAM,aAA2C,CACjD;AAEA,WAAO,KAAK,OAAO;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Variant } from '../enums/variant';\n\nexport class PaymentsProviders {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Answers the SVG document for a catalog provider code (a shipped assets/logos/{code}.svg, otherwise a generated monogram tile), with content-type image/svg+xml and a one-day cache. For a connector whose brand files are on the platform CDN it redirects (302) there instead: to the full logo, or with `?variant=symbol` to the square symbol. It is the one route in this app that needs no tenant identity: the logos are bundled with the app rather than owned by anyone, so nothing here is tenant data and no key or tenant header is required to fetch one — which is what lets a storefront or a Cockpit screen point an <img> straight at it: https://api.revenexx.com/v1/payments/logos/stripe. Declared unauthenticated, so the gateway serves it with no header at all and passes the content-type, the cache headers and the redirect through. The app domain itself does not answer the internet.\n *\n * @param {string} params.slug - A catalog provider code, as GET /payments/providers/catalog lists it. Case-insensitive, and a trailing '.svg' is ignored. Not tenant data: the logos ship with the app and are identical for everyone.\n * @param {Variant} params.variant - Which image of a connector with brand files on the CDN to redirect to: the full `logo` (default) or the square `symbol`. Without uploaded files both answer the same monogram tile.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsLogosGet(params: { slug: string, variant?: Variant }): Promise<{}>;\n /**\n * Answers the SVG document for a catalog provider code (a shipped assets/logos/{code}.svg, otherwise a generated monogram tile), with content-type image/svg+xml and a one-day cache. For a connector whose brand files are on the platform CDN it redirects (302) there instead: to the full logo, or with `?variant=symbol` to the square symbol. It is the one route in this app that needs no tenant identity: the logos are bundled with the app rather than owned by anyone, so nothing here is tenant data and no key or tenant header is required to fetch one — which is what lets a storefront or a Cockpit screen point an <img> straight at it: https://api.revenexx.com/v1/payments/logos/stripe. Declared unauthenticated, so the gateway serves it with no header at all and passes the content-type, the cache headers and the redirect through. The app domain itself does not answer the internet.\n *\n * @param {string} slug - A catalog provider code, as GET /payments/providers/catalog lists it. Case-insensitive, and a trailing '.svg' is ignored. Not tenant data: the logos ship with the app and are identical for everyone.\n * @param {Variant} variant - Which image of a connector with brand files on the CDN to redirect to: the full `logo` (default) or the square `symbol`. Without uploaded files both answer the same monogram tile.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsLogosGet(slug: string, variant?: Variant): Promise<{}>;\n paymentsLogosGet(\n paramsOrFirst: { slug: string, variant?: Variant } | string,\n ...rest: [(Variant)?] \n ): Promise<{}> {\n let params: { slug: string, variant?: Variant };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { slug: string, variant?: Variant };\n } else {\n params = {\n slug: paramsOrFirst as string,\n variant: rest[0] as Variant \n };\n }\n \n const slug = params.slug;\n const variant = params.variant;\n\n if (typeof slug === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"slug\"');\n }\n\n const apiPath = '/v1/payments/logos/{slug}'.replace('{slug}', slug);\n const apiPayload: Payload = {};\n if (typeof variant !== 'undefined') {\n apiPayload['variant'] = variant;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. Only the public columns, `limit`, `offset` and `order` are query parameters; anything else — a secret column included — answers 400 `unknown_filter`, whatever its value.\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} params.provider - Exact provider code.\n * @param {boolean} params.enabled - Restrict to enabled or disabled providers.\n * @param {boolean} params.testMode - Restrict to sandbox or live configurations.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersList(params?: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean }): Promise<{}>;\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. Only the public columns, `limit`, `offset` and `order` are query parameters; anything else — a secret column included — answers 400 `unknown_filter`, whatever its value.\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} provider - Exact provider code.\n * @param {boolean} enabled - Restrict to enabled or disabled providers.\n * @param {boolean} testMode - Restrict to sandbox or live configurations.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersList(limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean): Promise<{}>;\n paymentsProvidersList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean } | number,\n ...rest: [(number)?, (string)?, (string)?, (boolean)?, (boolean)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n provider: rest[2] as string,\n enabled: rest[3] as boolean,\n testMode: rest[4] as boolean \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const provider = params.provider;\n const enabled = params.enabled;\n const testMode = params.testMode;\n\n\n const apiPath = '/v1/payments/providers';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Activates one PSP account of this tenant. The `provider` code is not free text: it has to be one the catalog carries, and anything else is refused with 400 and a message listing the codes that are — so GET /payments/providers/catalog is the call that comes first, both for the code itself and for the credential field names this provider expects. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} params.provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {object} params.credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} params.enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} params.name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. null, omitted or empty falls back to the catalog label.\n * @param {object} params.options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {boolean} params.testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} params.webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersCreate(params: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string }): Promise<Models.PaymentProvider>;\n /**\n * Activates one PSP account of this tenant. The `provider` code is not free text: it has to be one the catalog carries, and anything else is refused with 400 and a message listing the codes that are — so GET /payments/providers/catalog is the call that comes first, both for the code itself and for the credential field names this provider expects. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {object} credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. null, omitted or empty falls back to the catalog label.\n * @param {object} options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {boolean} testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersCreate(provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string): Promise<Models.PaymentProvider>;\n paymentsProvidersCreate(\n paramsOrFirst: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string } | string,\n ...rest: [(object)?, (boolean)?, (string)?, (object)?, (boolean)?, (string)?] \n ): Promise<Models.PaymentProvider> {\n let params: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string };\n } else {\n params = {\n provider: paramsOrFirst as string,\n credentials: rest[0] as object,\n enabled: rest[1] as boolean,\n name: rest[2] as string,\n options: rest[3] as object,\n testMode: rest[4] as boolean,\n webhookSecret: rest[5] as string \n };\n }\n \n const provider = params.provider;\n const credentials = params.credentials;\n const enabled = params.enabled;\n const name = params.name;\n const options = params.options;\n const testMode = params.testMode;\n const webhookSecret = params.webhookSecret;\n\n if (typeof provider === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/v1/payments/providers';\n const apiPayload: Payload = {};\n if (typeof credentials !== 'undefined') {\n apiPayload['credentials'] = credentials;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof options !== 'undefined') {\n apiPayload['options'] = options;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n if (typeof webhookSecret !== 'undefined') {\n apiPayload['webhook_secret'] = webhookSecret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The connectors this app offers, presented for a picker: EU-headquartered providers first by rank (Novalnet and Mollie lead), then the rest of Europe, then everything else — every entry says its `region`, `hq_country` and whom it is `recommended_for`. Read it to build the \"add provider\" picker and the credentials form: `credential_schema` is the labelled list of keys to put inside `credentials` (with help text, whether each is required and whether it is a secret), and `credential_fields` the same names as a flat list. Codes POST /payments/providers accepts are these plus the built-in `mock`; nothing is listed that the bundled driver cannot run, and a code the app knows but does not offer is refused on create (422 `provider_not_offered`). It says nothing secret about this tenant — only which codes it already has (`configured`, `addable`). `testable` says whether POST /payments/providers/{id}/check can check it. Answers an `ETag`; send it back as `If-None-Match` for a 304.\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersCatalog(): Promise<{}> {\n\n const apiPath = '/v1/payments/providers/catalog';\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Removes the PSP account row and its stored secrets, once nothing depends on it any more. The three tables of this app carry no foreign keys at all: a payment names its method by `method_code` and its acquirer by `provider`, both plain text, because a payment records what happened and has to survive the configuration it was made with. So the database will not stop this — whatever the ledger still names, it goes on naming. So the database will not stop this and the count is taken HERE, exactly as DELETE /payments/methods/{id} takes it, and answered as one 409 carrying both numbers. Counted first: every payment still in a status a transition starts from — created, requires_action, authorized or captured — because capture, cancel and refund all resolve the provider BY CODE and would answer 422 `provider_not_configured` with the row gone, leaving an authorization that can neither be collected nor released and a captured payment that can no longer be refunded here at all. Counted second: every payment method naming this provider, because POST /payments/methods/eligible does not check providers, so a checkout would go on offering a method whose next POST /payments fails at authorization unless the tenant's `fallback_provider` names one that is still configured. What is deliberately NOT counted is a settled payment — failed, cancelled or refunded: no transition starts there, so nothing will ask this provider about it again, and a `provider` code is closed catalog data that goes on meaning Stripe or PayPal with no configuration behind it. The refusal names `enabled: false` because that is usually what was meant: a disabled provider stops taking NEW payments exactly as a deleted one does, and every transition on the payments it already holds keeps working, since only the create path asks whether it is enabled.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersDelete(params: { id: string }): Promise<{}>;\n /**\n * Removes the PSP account row and its stored secrets, once nothing depends on it any more. The three tables of this app carry no foreign keys at all: a payment names its method by `method_code` and its acquirer by `provider`, both plain text, because a payment records what happened and has to survive the configuration it was made with. So the database will not stop this — whatever the ledger still names, it goes on naming. So the database will not stop this and the count is taken HERE, exactly as DELETE /payments/methods/{id} takes it, and answered as one 409 carrying both numbers. Counted first: every payment still in a status a transition starts from — created, requires_action, authorized or captured — because capture, cancel and refund all resolve the provider BY CODE and would answer 422 `provider_not_configured` with the row gone, leaving an authorization that can neither be collected nor released and a captured payment that can no longer be refunded here at all. Counted second: every payment method naming this provider, because POST /payments/methods/eligible does not check providers, so a checkout would go on offering a method whose next POST /payments fails at authorization unless the tenant's `fallback_provider` names one that is still configured. What is deliberately NOT counted is a settled payment — failed, cancelled or refunded: no transition starts there, so nothing will ask this provider about it again, and a `provider` code is closed catalog data that goes on meaning Stripe or PayPal with no configuration behind it. The refusal names `enabled: false` because that is usually what was meant: a disabled provider stops taking NEW payments exactly as a deleted one does, and every transition on the payments it already holds keeps working, since only the create path asks whether it is enabled.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersDelete(id: string): Promise<{}>;\n paymentsProvidersDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersGet(params: { id: string }): Promise<Models.PaymentProvider>;\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersGet(id: string): Promise<Models.PaymentProvider>;\n paymentsProvidersGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PaymentProvider> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A partial write: omitted fields keep their value. Three things are changed here in practice — the `credentials` (and `webhook_secret`) when a key is rotated, `test_mode` when an account moves from the PSP's sandbox to live, and `enabled` when it is switched on or taken out of service. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. One field is not like the others: `provider` is the CODE every payment and every method resolves this PSP by, so writing a different one is the delete through another door and is refused with the same 409 while anything still names the current code. Switching acquirer is a second configuration plus `enabled: false` on this one, never a rename.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @param {object} params.credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} params.enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} params.name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. Written straight to the database, which refuses an empty one.\n * @param {object} params.options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {string} params.provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {boolean} params.testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} params.webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersUpdate(params: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string }): Promise<Models.PaymentProvider>;\n /**\n * A partial write: omitted fields keep their value. Three things are changed here in practice — the `credentials` (and `webhook_secret`) when a key is rotated, `test_mode` when an account moves from the PSP's sandbox to live, and `enabled` when it is switched on or taken out of service. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. One field is not like the others: `provider` is the CODE every payment and every method resolves this PSP by, so writing a different one is the delete through another door and is refused with the same 409 while anything still names the current code. Switching acquirer is a second configuration plus `enabled: false` on this one, never a rename.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @param {object} credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. Written straight to the database, which refuses an empty one.\n * @param {object} options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {string} provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {boolean} testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersUpdate(id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string): Promise<Models.PaymentProvider>;\n paymentsProvidersUpdate(\n paramsOrFirst: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string } | string,\n ...rest: [(object)?, (boolean)?, (string)?, (object)?, (string)?, (boolean)?, (string)?] \n ): Promise<Models.PaymentProvider> {\n let params: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n credentials: rest[0] as object,\n enabled: rest[1] as boolean,\n name: rest[2] as string,\n options: rest[3] as object,\n provider: rest[4] as string,\n testMode: rest[5] as boolean,\n webhookSecret: rest[6] as string \n };\n }\n \n const id = params.id;\n const credentials = params.credentials;\n const enabled = params.enabled;\n const name = params.name;\n const options = params.options;\n const provider = params.provider;\n const testMode = params.testMode;\n const webhookSecret = params.webhookSecret;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof credentials !== 'undefined') {\n apiPayload['credentials'] = credentials;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof options !== 'undefined') {\n apiPayload['options'] = options;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n if (typeof webhookSecret !== 'undefined') {\n apiPayload['webhook_secret'] = webhookSecret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * \"Verbindung prüfen\": one cheap authenticated call to the provider in the configuration's own environment (sandbox in test mode, live otherwise) — Stripe reads its balance, PayPal issues an access token, Novalnet reads the merchant details. Nothing is charged and nothing is created at the provider. The outcome is stored as `options.last_check` `{ at, ok, code, environment }` and answered with the configuration; `code` is ok, auth_failed, environment_mismatch (a live key on a test-mode provider or the reverse), missing_credentials, unreachable or provider_error. Credentials appear in no answer and no log. Only connectors the catalog marks `testable` can be checked.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProviderCheck>}\n */\n paymentsProvidersCheck(params: { id: string }): Promise<Models.PaymentProviderCheck>;\n /**\n * \"Verbindung prüfen\": one cheap authenticated call to the provider in the configuration's own environment (sandbox in test mode, live otherwise) — Stripe reads its balance, PayPal issues an access token, Novalnet reads the merchant details. Nothing is charged and nothing is created at the provider. The outcome is stored as `options.last_check` `{ at, ok, code, environment }` and answered with the configuration; `code` is ok, auth_failed, environment_mismatch (a live key on a test-mode provider or the reverse), missing_credentials, unreachable or provider_error. Credentials appear in no answer and no log. Only connectors the catalog marks `testable` can be checked.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProviderCheck>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersCheck(id: string): Promise<Models.PaymentProviderCheck>;\n paymentsProvidersCheck(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PaymentProviderCheck> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}/check'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/payments-providers.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Variant } from '../enums/variant';\n\nexport class PaymentsProviders {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Answers the SVG document for a catalog provider code (a shipped assets/logos/{code}.svg, otherwise a generated monogram tile), with content-type image/svg+xml and a one-day cache. For a connector whose brand files are on the platform CDN it redirects (302) there instead: to the full logo, or with `?variant=symbol` to the square symbol. It is the one route in this app that needs no tenant identity: the logos are bundled with the app rather than owned by anyone, so nothing here is tenant data and no key or tenant header is required to fetch one — which is what lets a storefront or a Cockpit screen point an <img> straight at it. Called directly on the app domain (https://revenexx-payments.apps.revenexx.io/payments/logos/stripe) the response carries its real content-type; through the gateway the body is passed through but labelled application/json, so use the app domain for <img> sources.\n *\n * @param {string} params.slug - A catalog provider code, as GET /payments/providers/catalog lists it. Case-insensitive, and a trailing '.svg' is ignored. Not tenant data: the logos ship with the app and are identical for everyone.\n * @param {Variant} params.variant - Which image of a connector with brand files on the CDN to redirect to: the full `logo` (default) or the square `symbol`. Without uploaded files both answer the same monogram tile.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsLogosGet(params: { slug: string, variant?: Variant }): Promise<{}>;\n /**\n * Answers the SVG document for a catalog provider code (a shipped assets/logos/{code}.svg, otherwise a generated monogram tile), with content-type image/svg+xml and a one-day cache. For a connector whose brand files are on the platform CDN it redirects (302) there instead: to the full logo, or with `?variant=symbol` to the square symbol. It is the one route in this app that needs no tenant identity: the logos are bundled with the app rather than owned by anyone, so nothing here is tenant data and no key or tenant header is required to fetch one — which is what lets a storefront or a Cockpit screen point an <img> straight at it. Called directly on the app domain (https://revenexx-payments.apps.revenexx.io/payments/logos/stripe) the response carries its real content-type; through the gateway the body is passed through but labelled application/json, so use the app domain for <img> sources.\n *\n * @param {string} slug - A catalog provider code, as GET /payments/providers/catalog lists it. Case-insensitive, and a trailing '.svg' is ignored. Not tenant data: the logos ship with the app and are identical for everyone.\n * @param {Variant} variant - Which image of a connector with brand files on the CDN to redirect to: the full `logo` (default) or the square `symbol`. Without uploaded files both answer the same monogram tile.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsLogosGet(slug: string, variant?: Variant): Promise<{}>;\n paymentsLogosGet(\n paramsOrFirst: { slug: string, variant?: Variant } | string,\n ...rest: [(Variant)?] \n ): Promise<{}> {\n let params: { slug: string, variant?: Variant };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { slug: string, variant?: Variant };\n } else {\n params = {\n slug: paramsOrFirst as string,\n variant: rest[0] as Variant \n };\n }\n \n const slug = params.slug;\n const variant = params.variant;\n\n if (typeof slug === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"slug\"');\n }\n\n const apiPath = '/v1/payments/logos/{slug}'.replace('{slug}', slug);\n const apiPayload: Payload = {};\n if (typeof variant !== 'undefined') {\n apiPayload['variant'] = variant;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. Only the public columns, `limit`, `offset` and `order` are query parameters; anything else — a secret column included — answers 400 `unknown_filter`, whatever its value.\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} params.provider - Exact provider code.\n * @param {boolean} params.enabled - Restrict to enabled or disabled providers.\n * @param {boolean} params.testMode - Restrict to sandbox or live configurations.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersList(params?: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean }): Promise<{}>;\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. Only the public columns, `limit`, `offset` and `order` are query parameters; anything else — a secret column included — answers 400 `unknown_filter`, whatever its value.\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} provider - Exact provider code.\n * @param {boolean} enabled - Restrict to enabled or disabled providers.\n * @param {boolean} testMode - Restrict to sandbox or live configurations.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersList(limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean): Promise<{}>;\n paymentsProvidersList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean } | number,\n ...rest: [(number)?, (string)?, (string)?, (boolean)?, (boolean)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n provider: rest[2] as string,\n enabled: rest[3] as boolean,\n testMode: rest[4] as boolean \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const provider = params.provider;\n const enabled = params.enabled;\n const testMode = params.testMode;\n\n\n const apiPath = '/v1/payments/providers';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Activates one PSP account of this tenant. The `provider` code is not free text: it has to be one the catalog carries, and anything else is refused with 400 and a message listing the codes that are — so GET /payments/providers/catalog is the call that comes first, both for the code itself and for the credential field names this provider expects. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} params.provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {object} params.credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} params.enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} params.name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. null, omitted or empty falls back to the catalog label.\n * @param {object} params.options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {boolean} params.testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} params.webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersCreate(params: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string }): Promise<Models.PaymentProvider>;\n /**\n * Activates one PSP account of this tenant. The `provider` code is not free text: it has to be one the catalog carries, and anything else is refused with 400 and a message listing the codes that are — so GET /payments/providers/catalog is the call that comes first, both for the code itself and for the credential field names this provider expects. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {object} credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. null, omitted or empty falls back to the catalog label.\n * @param {object} options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {boolean} testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersCreate(provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string): Promise<Models.PaymentProvider>;\n paymentsProvidersCreate(\n paramsOrFirst: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string } | string,\n ...rest: [(object)?, (boolean)?, (string)?, (object)?, (boolean)?, (string)?] \n ): Promise<Models.PaymentProvider> {\n let params: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string };\n } else {\n params = {\n provider: paramsOrFirst as string,\n credentials: rest[0] as object,\n enabled: rest[1] as boolean,\n name: rest[2] as string,\n options: rest[3] as object,\n testMode: rest[4] as boolean,\n webhookSecret: rest[5] as string \n };\n }\n \n const provider = params.provider;\n const credentials = params.credentials;\n const enabled = params.enabled;\n const name = params.name;\n const options = params.options;\n const testMode = params.testMode;\n const webhookSecret = params.webhookSecret;\n\n if (typeof provider === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/v1/payments/providers';\n const apiPayload: Payload = {};\n if (typeof credentials !== 'undefined') {\n apiPayload['credentials'] = credentials;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof options !== 'undefined') {\n apiPayload['options'] = options;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n if (typeof webhookSecret !== 'undefined') {\n apiPayload['webhook_secret'] = webhookSecret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The connectors this app offers, presented for a picker: EU-headquartered providers first by rank (Novalnet and Mollie lead), then the rest of Europe, then everything else — every entry says its `region`, `hq_country` and whom it is `recommended_for`. Read it to build the \"add provider\" picker and the credentials form: `credential_schema` is the labelled list of keys to put inside `credentials` (with help text, whether each is required and whether it is a secret), and `credential_fields` the same names as a flat list. Codes POST /payments/providers accepts are these plus the built-in `mock`; nothing is listed that the bundled driver cannot run, and a code the app knows but does not offer is refused on create (422 `provider_not_offered`). It says nothing secret about this tenant — only which codes it already has (`configured`, `addable`). `testable` says whether POST /payments/providers/{id}/check can check it. Answers an `ETag`; send it back as `If-None-Match` for a 304.\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersCatalog(): Promise<{}> {\n\n const apiPath = '/v1/payments/providers/catalog';\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Removes the PSP account row and its stored secrets, once nothing depends on it any more. The three tables of this app carry no foreign keys at all: a payment names its method by `method_code` and its acquirer by `provider`, both plain text, because a payment records what happened and has to survive the configuration it was made with. So the database will not stop this — whatever the ledger still names, it goes on naming. So the database will not stop this and the count is taken HERE, exactly as DELETE /payments/methods/{id} takes it, and answered as one 409 carrying both numbers. Counted first: every payment still in a status a transition starts from — created, requires_action, authorized or captured — because capture, cancel and refund all resolve the provider BY CODE and would answer 422 `provider_not_configured` with the row gone, leaving an authorization that can neither be collected nor released and a captured payment that can no longer be refunded here at all. Counted second: every payment method naming this provider, because POST /payments/methods/eligible does not check providers, so a checkout would go on offering a method whose next POST /payments fails at authorization unless the tenant's `fallback_provider` names one that is still configured. What is deliberately NOT counted is a settled payment — failed, cancelled or refunded: no transition starts there, so nothing will ask this provider about it again, and a `provider` code is closed catalog data that goes on meaning Stripe or PayPal with no configuration behind it. The refusal names `enabled: false` because that is usually what was meant: a disabled provider stops taking NEW payments exactly as a deleted one does, and every transition on the payments it already holds keeps working, since only the create path asks whether it is enabled.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersDelete(params: { id: string }): Promise<{}>;\n /**\n * Removes the PSP account row and its stored secrets, once nothing depends on it any more. The three tables of this app carry no foreign keys at all: a payment names its method by `method_code` and its acquirer by `provider`, both plain text, because a payment records what happened and has to survive the configuration it was made with. So the database will not stop this — whatever the ledger still names, it goes on naming. So the database will not stop this and the count is taken HERE, exactly as DELETE /payments/methods/{id} takes it, and answered as one 409 carrying both numbers. Counted first: every payment still in a status a transition starts from — created, requires_action, authorized or captured — because capture, cancel and refund all resolve the provider BY CODE and would answer 422 `provider_not_configured` with the row gone, leaving an authorization that can neither be collected nor released and a captured payment that can no longer be refunded here at all. Counted second: every payment method naming this provider, because POST /payments/methods/eligible does not check providers, so a checkout would go on offering a method whose next POST /payments fails at authorization unless the tenant's `fallback_provider` names one that is still configured. What is deliberately NOT counted is a settled payment — failed, cancelled or refunded: no transition starts there, so nothing will ask this provider about it again, and a `provider` code is closed catalog data that goes on meaning Stripe or PayPal with no configuration behind it. The refusal names `enabled: false` because that is usually what was meant: a disabled provider stops taking NEW payments exactly as a deleted one does, and every transition on the payments it already holds keeps working, since only the create path asks whether it is enabled.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersDelete(id: string): Promise<{}>;\n paymentsProvidersDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersGet(params: { id: string }): Promise<Models.PaymentProvider>;\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersGet(id: string): Promise<Models.PaymentProvider>;\n paymentsProvidersGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PaymentProvider> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A partial write: omitted fields keep their value. Three things are changed here in practice — the `credentials` (and `webhook_secret`) when a key is rotated, `test_mode` when an account moves from the PSP's sandbox to live, and `enabled` when it is switched on or taken out of service. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. One field is not like the others: `provider` is the CODE every payment and every method resolves this PSP by, so writing a different one is the delete through another door and is refused with the same 409 while anything still names the current code. Switching acquirer is a second configuration plus `enabled: false` on this one, never a rename.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @param {object} params.credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} params.enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} params.name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. Written straight to the database, which refuses an empty one.\n * @param {object} params.options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {string} params.provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {boolean} params.testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} params.webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersUpdate(params: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string }): Promise<Models.PaymentProvider>;\n /**\n * A partial write: omitted fields keep their value. Three things are changed here in practice — the `credentials` (and `webhook_secret`) when a key is rotated, `test_mode` when an account moves from the PSP's sandbox to live, and `enabled` when it is switched on or taken out of service. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. One field is not like the others: `provider` is the CODE every payment and every method resolves this PSP by, so writing a different one is the delete through another door and is refused with the same 409 while anything still names the current code. Switching acquirer is a second configuration plus `enabled: false` on this one, never a rename.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @param {object} credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. Written straight to the database, which refuses an empty one.\n * @param {object} options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {string} provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {boolean} testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersUpdate(id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string): Promise<Models.PaymentProvider>;\n paymentsProvidersUpdate(\n paramsOrFirst: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string } | string,\n ...rest: [(object)?, (boolean)?, (string)?, (object)?, (string)?, (boolean)?, (string)?] \n ): Promise<Models.PaymentProvider> {\n let params: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n credentials: rest[0] as object,\n enabled: rest[1] as boolean,\n name: rest[2] as string,\n options: rest[3] as object,\n provider: rest[4] as string,\n testMode: rest[5] as boolean,\n webhookSecret: rest[6] as string \n };\n }\n \n const id = params.id;\n const credentials = params.credentials;\n const enabled = params.enabled;\n const name = params.name;\n const options = params.options;\n const provider = params.provider;\n const testMode = params.testMode;\n const webhookSecret = params.webhookSecret;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof credentials !== 'undefined') {\n apiPayload['credentials'] = credentials;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof options !== 'undefined') {\n apiPayload['options'] = options;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n if (typeof webhookSecret !== 'undefined') {\n apiPayload['webhook_secret'] = webhookSecret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * \"Verbindung prüfen\": one cheap authenticated call to the provider in the configuration's own environment (sandbox in test mode, live otherwise) — Stripe reads its balance, PayPal issues an access token, Novalnet reads the merchant details. Nothing is charged and nothing is created at the provider. The outcome is stored as `options.last_check` `{ at, ok, code, environment }` and answered with the configuration; `code` is ok, auth_failed, environment_mismatch (a live key on a test-mode provider or the reverse), missing_credentials, unreachable or provider_error. Credentials appear in no answer and no log. Only connectors the catalog marks `testable` can be checked.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProviderCheck>}\n */\n paymentsProvidersCheck(params: { id: string }): Promise<Models.PaymentProviderCheck>;\n /**\n * \"Verbindung prüfen\": one cheap authenticated call to the provider in the configuration's own environment (sandbox in test mode, live otherwise) — Stripe reads its balance, PayPal issues an access token, Novalnet reads the merchant details. Nothing is charged and nothing is created at the provider. The outcome is stored as `options.last_check` `{ at, ok, code, environment }` and answered with the configuration; `code` is ok, auth_failed, environment_mismatch (a live key on a test-mode provider or the reverse), missing_credentials, unreachable or provider_error. Credentials appear in no answer and no log. Only connectors the catalog marks `testable` can be checked.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProviderCheck>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersCheck(id: string): Promise<Models.PaymentProviderCheck>;\n paymentsProvidersCheck(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PaymentProviderCheck> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}/check'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/services/payments-providers.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Variant } from '../enums/variant';\n\nexport class PaymentsProviders {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\n * Answers the SVG document for a catalog provider code (a shipped assets/logos/{code}.svg, otherwise a generated monogram tile), with content-type image/svg+xml and a one-day cache. For a connector whose brand files are on the platform CDN it redirects (302) there instead: to the full logo, or with `?variant=symbol` to the square symbol. It is the one route in this app that needs no tenant identity: the logos are bundled with the app rather than owned by anyone, so nothing here is tenant data and no key or tenant header is required to fetch one — which is what lets a storefront or a Cockpit screen point an <img> straight at it: https://api.revenexx.com/v1/payments/logos/stripe. Declared unauthenticated, so the gateway serves it with no header at all and passes the content-type, the cache headers and the redirect through. The app domain itself does not answer the internet.\n *\n * @param {string} params.slug - A catalog provider code, as GET /payments/providers/catalog lists it. Case-insensitive, and a trailing '.svg' is ignored. Not tenant data: the logos ship with the app and are identical for everyone.\n * @param {Variant} params.variant - Which image of a connector with brand files on the CDN to redirect to: the full `logo` (default) or the square `symbol`. Without uploaded files both answer the same monogram tile.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsLogosGet(params: { slug: string, variant?: Variant }): Promise<{}>;\n /**\n * Answers the SVG document for a catalog provider code (a shipped assets/logos/{code}.svg, otherwise a generated monogram tile), with content-type image/svg+xml and a one-day cache. For a connector whose brand files are on the platform CDN it redirects (302) there instead: to the full logo, or with `?variant=symbol` to the square symbol. It is the one route in this app that needs no tenant identity: the logos are bundled with the app rather than owned by anyone, so nothing here is tenant data and no key or tenant header is required to fetch one — which is what lets a storefront or a Cockpit screen point an <img> straight at it: https://api.revenexx.com/v1/payments/logos/stripe. Declared unauthenticated, so the gateway serves it with no header at all and passes the content-type, the cache headers and the redirect through. The app domain itself does not answer the internet.\n *\n * @param {string} slug - A catalog provider code, as GET /payments/providers/catalog lists it. Case-insensitive, and a trailing '.svg' is ignored. Not tenant data: the logos ship with the app and are identical for everyone.\n * @param {Variant} variant - Which image of a connector with brand files on the CDN to redirect to: the full `logo` (default) or the square `symbol`. Without uploaded files both answer the same monogram tile.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsLogosGet(slug: string, variant?: Variant): Promise<{}>;\n paymentsLogosGet(\n paramsOrFirst: { slug: string, variant?: Variant } | string,\n ...rest: [(Variant)?] \n ): Promise<{}> {\n let params: { slug: string, variant?: Variant };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { slug: string, variant?: Variant };\n } else {\n params = {\n slug: paramsOrFirst as string,\n variant: rest[0] as Variant \n };\n }\n \n const slug = params.slug;\n const variant = params.variant;\n\n if (typeof slug === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"slug\"');\n }\n\n const apiPath = '/v1/payments/logos/{slug}'.replace('{slug}', slug);\n const apiPayload: Payload = {};\n if (typeof variant !== 'undefined') {\n apiPayload['variant'] = variant;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. Only the public columns, `limit`, `offset` and `order` are query parameters; anything else — a secret column included — answers 400 `unknown_filter`, whatever its value.\n *\n * @param {number} params.limit - Page size (default 50, max 200).\n * @param {number} params.offset - Row offset for pagination (default 0).\n * @param {string} params.order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} params.provider - Exact provider code.\n * @param {boolean} params.enabled - Restrict to enabled or disabled providers.\n * @param {boolean} params.testMode - Restrict to sandbox or live configurations.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersList(params?: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean }): Promise<{}>;\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. Only the public columns, `limit`, `offset` and `order` are query parameters; anything else — a secret column included — answers 400 `unknown_filter`, whatever its value.\n *\n * @param {number} limit - Page size (default 50, max 200).\n * @param {number} offset - Row offset for pagination (default 0).\n * @param {string} order - Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending. Anything else is refused with 400.\n * @param {string} provider - Exact provider code.\n * @param {boolean} enabled - Restrict to enabled or disabled providers.\n * @param {boolean} testMode - Restrict to sandbox or live configurations.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersList(limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean): Promise<{}>;\n paymentsProvidersList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean } | number,\n ...rest: [(number)?, (string)?, (string)?, (boolean)?, (boolean)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, provider?: string, enabled?: boolean, testMode?: boolean };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n provider: rest[2] as string,\n enabled: rest[3] as boolean,\n testMode: rest[4] as boolean \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const provider = params.provider;\n const enabled = params.enabled;\n const testMode = params.testMode;\n\n\n const apiPath = '/v1/payments/providers';\n const apiPayload: Payload = {};\n if (typeof limit !== 'undefined') {\n apiPayload['limit'] = limit;\n }\n if (typeof offset !== 'undefined') {\n apiPayload['offset'] = offset;\n }\n if (typeof order !== 'undefined') {\n apiPayload['order'] = order;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Activates one PSP account of this tenant. The `provider` code is not free text: it has to be one the catalog carries, and anything else is refused with 400 and a message listing the codes that are — so GET /payments/providers/catalog is the call that comes first, both for the code itself and for the credential field names this provider expects. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} params.provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {object} params.credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} params.enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} params.name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. null, omitted or empty falls back to the catalog label.\n * @param {object} params.options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {boolean} params.testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} params.webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersCreate(params: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string }): Promise<Models.PaymentProvider>;\n /**\n * Activates one PSP account of this tenant. The `provider` code is not free text: it has to be one the catalog carries, and anything else is refused with 400 and a message listing the codes that are — so GET /payments/providers/catalog is the call that comes first, both for the code itself and for the credential field names this provider expects. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {object} credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. null, omitted or empty falls back to the catalog label.\n * @param {object} options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {boolean} testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersCreate(provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string): Promise<Models.PaymentProvider>;\n paymentsProvidersCreate(\n paramsOrFirst: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string } | string,\n ...rest: [(object)?, (boolean)?, (string)?, (object)?, (boolean)?, (string)?] \n ): Promise<Models.PaymentProvider> {\n let params: { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { provider: string, credentials?: object, enabled?: boolean, name?: string, options?: object, testMode?: boolean, webhookSecret?: string };\n } else {\n params = {\n provider: paramsOrFirst as string,\n credentials: rest[0] as object,\n enabled: rest[1] as boolean,\n name: rest[2] as string,\n options: rest[3] as object,\n testMode: rest[4] as boolean,\n webhookSecret: rest[5] as string \n };\n }\n \n const provider = params.provider;\n const credentials = params.credentials;\n const enabled = params.enabled;\n const name = params.name;\n const options = params.options;\n const testMode = params.testMode;\n const webhookSecret = params.webhookSecret;\n\n if (typeof provider === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"provider\"');\n }\n\n const apiPath = '/v1/payments/providers';\n const apiPayload: Payload = {};\n if (typeof credentials !== 'undefined') {\n apiPayload['credentials'] = credentials;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof options !== 'undefined') {\n apiPayload['options'] = options;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n if (typeof webhookSecret !== 'undefined') {\n apiPayload['webhook_secret'] = webhookSecret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * The connectors this app offers, presented for a picker: EU-headquartered providers first by rank (Novalnet and Mollie lead), then the rest of Europe, then everything else — every entry says its `region`, `hq_country` and whom it is `recommended_for`. Read it to build the \"add provider\" picker and the credentials form: `credential_schema` is the labelled list of keys to put inside `credentials` (with help text, whether each is required and whether it is a secret), and `credential_fields` the same names as a flat list. Codes POST /payments/providers accepts are these plus the built-in `mock`; nothing is listed that the bundled driver cannot run, and a code the app knows but does not offer is refused on create (422 `provider_not_offered`). It says nothing secret about this tenant — only which codes it already has (`configured`, `addable`). `testable` says whether POST /payments/providers/{id}/check can check it. Answers an `ETag`; send it back as `If-None-Match` for a 304.\n *\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersCatalog(): Promise<{}> {\n\n const apiPath = '/v1/payments/providers/catalog';\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * Removes the PSP account row and its stored secrets, once nothing depends on it any more. The three tables of this app carry no foreign keys at all: a payment names its method by `method_code` and its acquirer by `provider`, both plain text, because a payment records what happened and has to survive the configuration it was made with. So the database will not stop this — whatever the ledger still names, it goes on naming. So the database will not stop this and the count is taken HERE, exactly as DELETE /payments/methods/{id} takes it, and answered as one 409 carrying both numbers. Counted first: every payment still in a status a transition starts from — created, requires_action, authorized or captured — because capture, cancel and refund all resolve the provider BY CODE and would answer 422 `provider_not_configured` with the row gone, leaving an authorization that can neither be collected nor released and a captured payment that can no longer be refunded here at all. Counted second: every payment method naming this provider, because POST /payments/methods/eligible does not check providers, so a checkout would go on offering a method whose next POST /payments fails at authorization unless the tenant's `fallback_provider` names one that is still configured. What is deliberately NOT counted is a settled payment — failed, cancelled or refunded: no transition starts there, so nothing will ask this provider about it again, and a `provider` code is closed catalog data that goes on meaning Stripe or PayPal with no configuration behind it. The refusal names `enabled: false` because that is usually what was meant: a disabled provider stops taking NEW payments exactly as a deleted one does, and every transition on the payments it already holds keeps working, since only the create path asks whether it is enabled.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n paymentsProvidersDelete(params: { id: string }): Promise<{}>;\n /**\n * Removes the PSP account row and its stored secrets, once nothing depends on it any more. The three tables of this app carry no foreign keys at all: a payment names its method by `method_code` and its acquirer by `provider`, both plain text, because a payment records what happened and has to survive the configuration it was made with. So the database will not stop this — whatever the ledger still names, it goes on naming. So the database will not stop this and the count is taken HERE, exactly as DELETE /payments/methods/{id} takes it, and answered as one 409 carrying both numbers. Counted first: every payment still in a status a transition starts from — created, requires_action, authorized or captured — because capture, cancel and refund all resolve the provider BY CODE and would answer 422 `provider_not_configured` with the row gone, leaving an authorization that can neither be collected nor released and a captured payment that can no longer be refunded here at all. Counted second: every payment method naming this provider, because POST /payments/methods/eligible does not check providers, so a checkout would go on offering a method whose next POST /payments fails at authorization unless the tenant's `fallback_provider` names one that is still configured. What is deliberately NOT counted is a settled payment — failed, cancelled or refunded: no transition starts there, so nothing will ask this provider about it again, and a `provider` code is closed catalog data that goes on meaning Stripe or PayPal with no configuration behind it. The refusal names `enabled: false` because that is usually what was meant: a disabled provider stops taking NEW payments exactly as a deleted one does, and every transition on the payments it already holds keeps working, since only the create path asks whether it is enabled.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersDelete(id: string): Promise<{}>;\n paymentsProvidersDelete(\n paramsOrFirst: { id: string } | string \n ): Promise<{}> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'delete',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersGet(params: { id: string }): Promise<Models.PaymentProvider>;\n /**\n * PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersGet(id: string): Promise<Models.PaymentProvider>;\n paymentsProvidersGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PaymentProvider> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'get',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * A partial write: omitted fields keep their value. Three things are changed here in practice — the `credentials` (and `webhook_secret`) when a key is rotated, `test_mode` when an account moves from the PSP's sandbox to live, and `enabled` when it is switched on or taken out of service. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. One field is not like the others: `provider` is the CODE every payment and every method resolves this PSP by, so writing a different one is the delete through another door and is refused with the same 409 while anything still names the current code. Switching acquirer is a second configuration plus `enabled: false` on this one, never a rename.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @param {object} params.credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} params.enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} params.name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. Written straight to the database, which refuses an empty one.\n * @param {object} params.options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {string} params.provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {boolean} params.testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} params.webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n */\n paymentsProvidersUpdate(params: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string }): Promise<Models.PaymentProvider>;\n /**\n * A partial write: omitted fields keep their value. Three things are changed here in practice — the `credentials` (and `webhook_secret`) when a key is rotated, `test_mode` when an account moves from the PSP's sandbox to live, and `enabled` when it is switched on or taken out of service. PSP secrets are write-only: 'credentials' and 'webhook_secret' are accepted on create/update, stored for the drivers, and never returned by any route — the responses carry the public columns only (id, provider, name, enabled, test_mode, options, timestamps). To rotate a secret, write the new value; there is no way to read the current one back. One field is not like the others: `provider` is the CODE every payment and every method resolves this PSP by, so writing a different one is the delete through another door and is refused with the same 409 while anything still names the current code. Switching acquirer is a second configuration plus `enabled: false` on this one, never a rename.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @param {object} credentials - The PSP's own API credentials, under the key names of the payment SDK's config for that connector — `GET /payments/providers/catalog` publishes them per provider as `credential_schema` (labelled, with which are required and which are secret) and `credential_fields` (names only). Stripe: `api_key`; PayPal: `client_id` + `client_secret`; Novalnet: `product_activation_key` + `payment_access_key` + `tariff_id`. A key the connector does not take is refused with 400 `unknown_credential_key`; a key an earlier version spelled differently (Novalnet `api_key`) is stored under today's name. They come from the provider's own dashboard, are handed to the driver in-process, and are never read back by any route. Write-only: to rotate one, write the new value. Whatever a document shows here is a placeholder.\n * @param {boolean} enabled - Only an enabled provider takes NEW payments: a method pointing at a disabled one falls through to the tenant's `fallback_provider`, and to a 422 if there is none. Nothing else reads it — capture, cancel and refund on the payments this PSP already holds go on working — which is what makes disabling the safe retirement and deleting the refused one. Defaults to false — finish the credentials before switching it on.\n * @param {string} name - Operator-facing name of the configuration. Defaults to the catalog label, and is worth changing when a tenant runs two accounts with one PSP. Written straight to the database, which refuses an empty one.\n * @param {object} options - Per-provider switches this app understands, plus anything the merchant keeps beside them. Four keys are the app's own: `logo_url` (the bundled logo, filled in when the provider is seeded — superseded by the generated `logo_url` column), `capture_method` and `three_ds` (what the prism driver does today), and `last_check` (the last connection check). Free jsonb — an unknown key is stored and ignored.\n * @param {string} provider - The catalog code of the PSP this row configures — one row per provider per tenant. GET /payments/providers/catalog lists every code that may appear here. It is what every payment and every method naming this PSP resolves it by, so changing it is refused with 409 for as long as one of them does. Required on create, and refused with 400 when the catalog does not carry it.\n * @param {boolean} testMode - Whether the driver talks to the PSP's sandbox. New configurations start in test mode: a provider nobody verified must not touch live money. Unstated takes the tenant's own `test_mode_default` setting.\n * @param {string} webhookSecret - The signing secret the PSP issues when its webhook endpoint is created, in the provider's own dashboard. webhooks.revenexx.com verifies each callback against it before the dispatcher hands the envelope to this app. Write-only, like `credentials`: it is stored, used, and never read back by any route, so there is nothing to compare a value against — to rotate it, write the new one. Whatever a document shows here is a generated placeholder, not a usable secret — writing it verbatim leaves every callback failing verification.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProvider>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersUpdate(id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string): Promise<Models.PaymentProvider>;\n paymentsProvidersUpdate(\n paramsOrFirst: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string } | string,\n ...rest: [(object)?, (boolean)?, (string)?, (object)?, (string)?, (boolean)?, (string)?] \n ): Promise<Models.PaymentProvider> {\n let params: { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, credentials?: object, enabled?: boolean, name?: string, options?: object, provider?: string, testMode?: boolean, webhookSecret?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n credentials: rest[0] as object,\n enabled: rest[1] as boolean,\n name: rest[2] as string,\n options: rest[3] as object,\n provider: rest[4] as string,\n testMode: rest[5] as boolean,\n webhookSecret: rest[6] as string \n };\n }\n \n const id = params.id;\n const credentials = params.credentials;\n const enabled = params.enabled;\n const name = params.name;\n const options = params.options;\n const provider = params.provider;\n const testMode = params.testMode;\n const webhookSecret = params.webhookSecret;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof credentials !== 'undefined') {\n apiPayload['credentials'] = credentials;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof options !== 'undefined') {\n apiPayload['options'] = options;\n }\n if (typeof provider !== 'undefined') {\n apiPayload['provider'] = provider;\n }\n if (typeof testMode !== 'undefined') {\n apiPayload['test_mode'] = testMode;\n }\n if (typeof webhookSecret !== 'undefined') {\n apiPayload['webhook_secret'] = webhookSecret;\n }\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n 'content-type': 'application/json',\n }\n\n return this.client.call(\n 'put',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n\n /**\n * \"Verbindung prüfen\": one cheap authenticated call to the provider in the configuration's own environment (sandbox in test mode, live otherwise) — Stripe reads its balance, PayPal issues an access token, Novalnet reads the merchant details. Nothing is charged and nothing is created at the provider. The outcome is stored as `options.last_check` `{ at, ok, code, environment }` and answered with the configuration; `code` is ok, auth_failed, environment_mismatch (a live key on a test-mode provider or the reverse), missing_credentials, unreachable or provider_error. Credentials appear in no answer and no log. Only connectors the catalog marks `testable` can be checked.\n *\n * @param {string} params.id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProviderCheck>}\n */\n paymentsProvidersCheck(params: { id: string }): Promise<Models.PaymentProviderCheck>;\n /**\n * \"Verbindung prüfen\": one cheap authenticated call to the provider in the configuration's own environment (sandbox in test mode, live otherwise) — Stripe reads its balance, PayPal issues an access token, Novalnet reads the merchant details. Nothing is charged and nothing is created at the provider. The outcome is stored as `options.last_check` `{ at, ok, code, environment }` and answered with the configuration; `code` is ok, auth_failed, environment_mismatch (a live key on a test-mode provider or the reverse), missing_credentials, unreachable or provider_error. Credentials appear in no answer and no log. Only connectors the catalog marks `testable` can be checked.\n *\n * @param {string} id - The PSP configuration. A uuid — the data plane casts this segment and answers 400, not 404, for anything else.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PaymentProviderCheck>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n paymentsProvidersCheck(id: string): Promise<Models.PaymentProviderCheck>;\n paymentsProvidersCheck(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PaymentProviderCheck> {\n let params: { id: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string };\n } else {\n params = {\n id: paramsOrFirst as string \n };\n }\n \n const id = params.id;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/payments/providers/{id}/check'.replace('{id}', id);\n const apiPayload: Payload = {};\n const uri = new URL(this.client.config.endpoint + apiPath);\n\n const apiHeaders: { [header: string]: string } = {\n }\n\n return this.client.call(\n 'post',\n uri,\n apiHeaders,\n apiPayload,\n );\n }\n}\n"]}
@@ -387,6 +387,7 @@ import '../enums/procurement-vocabulary-summary-name.mjs';
387
387
  import '../enums/procurement-vocabulary-value-tone.mjs';
388
388
  import '../enums/product-categories-source.mjs';
389
389
  import '../enums/product-channels-assign-request-mode.mjs';
390
+ import '../enums/product-defaults-result-reason.mjs';
390
391
  import '../enums/product-grid-column-source.mjs';
391
392
  import '../enums/product-label-source.mjs';
392
393
  import '../enums/product-label-attribute-source.mjs';
@@ -387,6 +387,7 @@ import '../enums/procurement-vocabulary-summary-name.js';
387
387
  import '../enums/procurement-vocabulary-value-tone.js';
388
388
  import '../enums/product-categories-source.js';
389
389
  import '../enums/product-channels-assign-request-mode.js';
390
+ import '../enums/product-defaults-result-reason.js';
390
391
  import '../enums/product-grid-column-source.js';
391
392
  import '../enums/product-label-source.js';
392
393
  import '../enums/product-label-attribute-source.js';
@@ -388,6 +388,7 @@ import '../enums/procurement-vocabulary-summary-name.mjs';
388
388
  import '../enums/procurement-vocabulary-value-tone.mjs';
389
389
  import '../enums/product-categories-source.mjs';
390
390
  import '../enums/product-channels-assign-request-mode.mjs';
391
+ import '../enums/product-defaults-result-reason.mjs';
391
392
  import '../enums/product-grid-column-source.mjs';
392
393
  import '../enums/product-label-source.mjs';
393
394
  import '../enums/product-label-attribute-source.mjs';
@@ -388,6 +388,7 @@ import '../enums/procurement-vocabulary-summary-name.js';
388
388
  import '../enums/procurement-vocabulary-value-tone.js';
389
389
  import '../enums/product-categories-source.js';
390
390
  import '../enums/product-channels-assign-request-mode.js';
391
+ import '../enums/product-defaults-result-reason.js';
391
392
  import '../enums/product-grid-column-source.js';
392
393
  import '../enums/product-label-source.js';
393
394
  import '../enums/product-label-attribute-source.js';
@@ -386,6 +386,7 @@ import '../enums/procurement-vocabulary-summary-name.mjs';
386
386
  import '../enums/procurement-vocabulary-value-tone.mjs';
387
387
  import '../enums/product-categories-source.mjs';
388
388
  import '../enums/product-channels-assign-request-mode.mjs';
389
+ import '../enums/product-defaults-result-reason.mjs';
389
390
  import '../enums/product-grid-column-source.mjs';
390
391
  import '../enums/product-label-source.mjs';
391
392
  import '../enums/product-label-attribute-source.mjs';
@@ -386,6 +386,7 @@ import '../enums/procurement-vocabulary-summary-name.js';
386
386
  import '../enums/procurement-vocabulary-value-tone.js';
387
387
  import '../enums/product-categories-source.js';
388
388
  import '../enums/product-channels-assign-request-mode.js';
389
+ import '../enums/product-defaults-result-reason.js';
389
390
  import '../enums/product-grid-column-source.js';
390
391
  import '../enums/product-label-source.js';
391
392
  import '../enums/product-label-attribute-source.js';
@@ -386,6 +386,7 @@ import '../enums/procurement-vocabulary-source.mjs';
386
386
  import '../enums/procurement-vocabulary-summary-name.mjs';
387
387
  import '../enums/procurement-vocabulary-value-tone.mjs';
388
388
  import '../enums/product-channels-assign-request-mode.mjs';
389
+ import '../enums/product-defaults-result-reason.mjs';
389
390
  import '../enums/product-grid-column-source.mjs';
390
391
  import '../enums/product-label-source.mjs';
391
392
  import '../enums/product-label-attribute-source.mjs';
@@ -386,6 +386,7 @@ import '../enums/procurement-vocabulary-source.js';
386
386
  import '../enums/procurement-vocabulary-summary-name.js';
387
387
  import '../enums/procurement-vocabulary-value-tone.js';
388
388
  import '../enums/product-channels-assign-request-mode.js';
389
+ import '../enums/product-defaults-result-reason.js';
389
390
  import '../enums/product-grid-column-source.js';
390
391
  import '../enums/product-label-source.js';
391
392
  import '../enums/product-label-attribute-source.js';