@revenexx/node 0.4.0 → 0.5.1

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 +11 -9
  4. package/dist/client.js.map +1 -1
  5. package/dist/client.mjs +11 -9
  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 +8 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/services/punchout.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Protocol } from '../enums/protocol';\nimport { PunchoutVocabulariesGetName } from '../enums/punchout-vocabularies-get-name';\n\nexport class Punchout {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {string} params.fallbackContactId - The accounts that sign an unnamed buyer in as this contact. Asked by customers before a contact is deleted for good: an account whose fallback is gone turns every buyer the ERP does not name away. Applied and echoed in `filter`; any account, enabled or not.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutAccountsList(params?: { limit?: number, offset?: number, order?: string, fallbackContactId?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {string} fallbackContactId - The accounts that sign an unnamed buyer in as this contact. Asked by customers before a contact is deleted for good: an account whose fallback is gone turns every buyer the ERP does not name away. Applied and echoed in `filter`; any account, enabled or not.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsList(limit?: number, offset?: number, order?: string, fallbackContactId?: string): Promise<{}>;\n punchoutAccountsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, fallbackContactId?: string } | number,\n ...rest: [(number)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, fallbackContactId?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, fallbackContactId?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n fallbackContactId: rest[2] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const fallbackContactId = params.fallbackContactId;\n\n\n const apiPath = '/v1/punchout/accounts';\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 fallbackContactId !== 'undefined') {\n apiPayload['fallback_contact_id'] = fallbackContactId;\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 *\n * @param {string} params.channelCode - \n * @param {string} params.code - \n * @param {string} params.name - \n * @param {string} params.protocol - \n * @param {string} params.authStrategy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} params.credentialDomain - \n * @param {string} params.credentialIdentity - \n * @param {string} params.credentialSecret - \n * @param {boolean} params.echoEntryParameters - OCI only: send the entry call's own query parameters back with the hand-back, for an SRM that expects them. Credential parameters are never sent back. Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} params.enabled - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} params.externalId - The key this punchout account has in the system that OWNS it. An account is a partner identity, and the procurement platform on the other side knows the relationship by an id of its own — a supplier id, a vendor number, an IDS customer name. Unique per tenant where it is set, so a repeated import updates the account it wrote last time instead of adding a second one. `code` is what this shop calls the partner; this is what the partner calls itself. Null for an account an operator typed in, which is the ordinary case.\n * @param {object} params.externalRefs - Every OTHER system that knows this partner, keyed by system name — the ERP's vendor number beside the procurement platform's supplier id, because one customer commonly reaches this shop through both. `external_id` is the leading system; this is the rest, and the next one costs no column. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document — look the account up by `external_id` and read this off the answer.\n * @param {string} params.fallbackContactId - \n * @param {string} params.idsCustomerName - \n * @param {string} params.loginToken - \n * @param {object} params.metadata - Free-form jsonb this tenant owns, and the extension point this entity has never had — anything about the partner relationship that this app does not model, up to the day it earns a column. Nothing here is read when a visit is served: the account's own columns are what the app acts on, `source_data` is what the source said, and this is what you say.\n * @param {string} params.organizationId - \n * @param {string} params.protocolVersion - The version of its protocol the account speaks — one of GET /punchout/vocabularies/protocol-versions for that protocol: OCI 4.0 or 5.0 (it decides which fields a hand-back carries), an IDS version this shop answers `SV` with. A cXML account states none; each cXML document carries its own. Any other value is refused. Omitted means the protocol's default.\n * @param {string} params.purchaseMode - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} params.secureOci - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {number} params.sessionTtlOverrideMinutes - How long a visit of this account stays open, overriding the tenant's `session_ttl_minutes` setting. Null — the ordinary case — means the tenant's lifetime.\n * @param {string} params.sharedSecret - \n * @param {object} params.sourceData - What the source said about this account, kept as it said it. Carries the ETag a write-back has to hand back in `If-Match`, and the source fields this app does not model — without it those are lost on the first edit made here. Not a place for anything the partner authenticates with: what an ERP sends to get in is written to the account's own write-only fields, which no route answers.\n * @param {string} params.sourceSyncedAt - When this account was last confirmed against its source. A delta run asks for changes since it, and an operator reads it to see that a feed has gone quiet. Editing the account here does not touch it: it says when the SOURCE was last seen, not when the row changed. Null for an account no source owns.\n * @param {string} params.startPageUrl - Where a buyer of THIS account lands after entry, overriding the tenant's `storefront_url` setting. Leave it empty: the entry URL is derived from the storefront address (`entry_url`), and an override is for a buyer who should land on a page of their own. Its host is the host the entry URL is derived from.\n * @param {string} params.unknownUserPolicy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n */\n punchoutAccountsCreate(params: { channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string }): Promise<Models.PunchoutAccount>;\n /**\n *\n * @param {string} channelCode - \n * @param {string} code - \n * @param {string} name - \n * @param {string} protocol - \n * @param {string} authStrategy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} credentialDomain - \n * @param {string} credentialIdentity - \n * @param {string} credentialSecret - \n * @param {boolean} echoEntryParameters - OCI only: send the entry call's own query parameters back with the hand-back, for an SRM that expects them. Credential parameters are never sent back. Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} enabled - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} externalId - The key this punchout account has in the system that OWNS it. An account is a partner identity, and the procurement platform on the other side knows the relationship by an id of its own — a supplier id, a vendor number, an IDS customer name. Unique per tenant where it is set, so a repeated import updates the account it wrote last time instead of adding a second one. `code` is what this shop calls the partner; this is what the partner calls itself. Null for an account an operator typed in, which is the ordinary case.\n * @param {object} externalRefs - Every OTHER system that knows this partner, keyed by system name — the ERP's vendor number beside the procurement platform's supplier id, because one customer commonly reaches this shop through both. `external_id` is the leading system; this is the rest, and the next one costs no column. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document — look the account up by `external_id` and read this off the answer.\n * @param {string} fallbackContactId - \n * @param {string} idsCustomerName - \n * @param {string} loginToken - \n * @param {object} metadata - Free-form jsonb this tenant owns, and the extension point this entity has never had — anything about the partner relationship that this app does not model, up to the day it earns a column. Nothing here is read when a visit is served: the account's own columns are what the app acts on, `source_data` is what the source said, and this is what you say.\n * @param {string} organizationId - \n * @param {string} protocolVersion - The version of its protocol the account speaks — one of GET /punchout/vocabularies/protocol-versions for that protocol: OCI 4.0 or 5.0 (it decides which fields a hand-back carries), an IDS version this shop answers `SV` with. A cXML account states none; each cXML document carries its own. Any other value is refused. Omitted means the protocol's default.\n * @param {string} purchaseMode - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} secureOci - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {number} sessionTtlOverrideMinutes - How long a visit of this account stays open, overriding the tenant's `session_ttl_minutes` setting. Null — the ordinary case — means the tenant's lifetime.\n * @param {string} sharedSecret - \n * @param {object} sourceData - What the source said about this account, kept as it said it. Carries the ETag a write-back has to hand back in `If-Match`, and the source fields this app does not model — without it those are lost on the first edit made here. Not a place for anything the partner authenticates with: what an ERP sends to get in is written to the account's own write-only fields, which no route answers.\n * @param {string} sourceSyncedAt - When this account was last confirmed against its source. A delta run asks for changes since it, and an operator reads it to see that a feed has gone quiet. Editing the account here does not touch it: it says when the SOURCE was last seen, not when the row changed. Null for an account no source owns.\n * @param {string} startPageUrl - Where a buyer of THIS account lands after entry, overriding the tenant's `storefront_url` setting. Leave it empty: the entry URL is derived from the storefront address (`entry_url`), and an override is for a buyer who should land on a page of their own. Its host is the host the entry URL is derived from.\n * @param {string} unknownUserPolicy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsCreate(channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string): Promise<Models.PunchoutAccount>;\n punchoutAccountsCreate(\n paramsOrFirst: { channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (boolean)?, (string)?, (object)?, (string)?, (string)?, (string)?, (object)?, (string)?, (string)?, (string)?, (boolean)?, (number)?, (string)?, (object)?, (string)?, (string)?, (string)?] \n ): Promise<Models.PunchoutAccount> {\n let params: { channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string };\n } else {\n params = {\n channelCode: paramsOrFirst as string,\n code: rest[0] as string,\n name: rest[1] as string,\n protocol: rest[2] as string,\n authStrategy: rest[3] as string,\n credentialDomain: rest[4] as string,\n credentialIdentity: rest[5] as string,\n credentialSecret: rest[6] as string,\n echoEntryParameters: rest[7] as boolean,\n enabled: rest[8] as boolean,\n externalId: rest[9] as string,\n externalRefs: rest[10] as object,\n fallbackContactId: rest[11] as string,\n idsCustomerName: rest[12] as string,\n loginToken: rest[13] as string,\n metadata: rest[14] as object,\n organizationId: rest[15] as string,\n protocolVersion: rest[16] as string,\n purchaseMode: rest[17] as string,\n secureOci: rest[18] as boolean,\n sessionTtlOverrideMinutes: rest[19] as number,\n sharedSecret: rest[20] as string,\n sourceData: rest[21] as object,\n sourceSyncedAt: rest[22] as string,\n startPageUrl: rest[23] as string,\n unknownUserPolicy: rest[24] as string \n };\n }\n \n const channelCode = params.channelCode;\n const code = params.code;\n const name = params.name;\n const protocol = params.protocol;\n const authStrategy = params.authStrategy;\n const credentialDomain = params.credentialDomain;\n const credentialIdentity = params.credentialIdentity;\n const credentialSecret = params.credentialSecret;\n const echoEntryParameters = params.echoEntryParameters;\n const enabled = params.enabled;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const fallbackContactId = params.fallbackContactId;\n const idsCustomerName = params.idsCustomerName;\n const loginToken = params.loginToken;\n const metadata = params.metadata;\n const organizationId = params.organizationId;\n const protocolVersion = params.protocolVersion;\n const purchaseMode = params.purchaseMode;\n const secureOci = params.secureOci;\n const sessionTtlOverrideMinutes = params.sessionTtlOverrideMinutes;\n const sharedSecret = params.sharedSecret;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const startPageUrl = params.startPageUrl;\n const unknownUserPolicy = params.unknownUserPolicy;\n\n if (typeof channelCode === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"channelCode\"');\n }\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof protocol === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"protocol\"');\n }\n\n const apiPath = '/v1/punchout/accounts';\n const apiPayload: Payload = {};\n if (typeof authStrategy !== 'undefined') {\n apiPayload['auth_strategy'] = authStrategy;\n }\n if (typeof channelCode !== 'undefined') {\n apiPayload['channel_code'] = channelCode;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof credentialDomain !== 'undefined') {\n apiPayload['credential_domain'] = credentialDomain;\n }\n if (typeof credentialIdentity !== 'undefined') {\n apiPayload['credential_identity'] = credentialIdentity;\n }\n if (typeof credentialSecret !== 'undefined') {\n apiPayload['credential_secret'] = credentialSecret;\n }\n if (typeof echoEntryParameters !== 'undefined') {\n apiPayload['echo_entry_parameters'] = echoEntryParameters;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof fallbackContactId !== 'undefined') {\n apiPayload['fallback_contact_id'] = fallbackContactId;\n }\n if (typeof idsCustomerName !== 'undefined') {\n apiPayload['ids_customer_name'] = idsCustomerName;\n }\n if (typeof loginToken !== 'undefined') {\n apiPayload['login_token'] = loginToken;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof protocolVersion !== 'undefined') {\n apiPayload['protocol_version'] = protocolVersion;\n }\n if (typeof purchaseMode !== 'undefined') {\n apiPayload['purchase_mode'] = purchaseMode;\n }\n if (typeof secureOci !== 'undefined') {\n apiPayload['secure_oci'] = secureOci;\n }\n if (typeof sessionTtlOverrideMinutes !== 'undefined') {\n apiPayload['session_ttl_override_minutes'] = sessionTtlOverrideMinutes;\n }\n if (typeof sharedSecret !== 'undefined') {\n apiPayload['shared_secret'] = sharedSecret;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof startPageUrl !== 'undefined') {\n apiPayload['start_page_url'] = startPageUrl;\n }\n if (typeof unknownUserPolicy !== 'undefined') {\n apiPayload['unknown_user_policy'] = unknownUserPolicy;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutAccountsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsDelete(id: string): Promise<{}>;\n punchoutAccountsDelete(\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/punchout/accounts/{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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n */\n punchoutAccountsGet(params: { id: string }): Promise<Models.PunchoutAccount>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsGet(id: string): Promise<Models.PunchoutAccount>;\n punchoutAccountsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutAccount> {\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/punchout/accounts/{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 *\n * @param {string} params.id - \n * @param {string} params.authStrategy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} params.channelCode - \n * @param {string} params.code - \n * @param {string} params.credentialDomain - \n * @param {string} params.credentialIdentity - \n * @param {string} params.credentialSecret - \n * @param {boolean} params.echoEntryParameters - OCI only: send the entry call's own query parameters back with the hand-back, for an SRM that expects them. Credential parameters are never sent back. Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} params.enabled - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} params.externalId - The key this punchout account has in the system that OWNS it. An account is a partner identity, and the procurement platform on the other side knows the relationship by an id of its own — a supplier id, a vendor number, an IDS customer name. Unique per tenant where it is set, so a repeated import updates the account it wrote last time instead of adding a second one. `code` is what this shop calls the partner; this is what the partner calls itself. Null for an account an operator typed in, which is the ordinary case.\n * @param {object} params.externalRefs - Every OTHER system that knows this partner, keyed by system name — the ERP's vendor number beside the procurement platform's supplier id, because one customer commonly reaches this shop through both. `external_id` is the leading system; this is the rest, and the next one costs no column. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document — look the account up by `external_id` and read this off the answer.\n * @param {string} params.fallbackContactId - \n * @param {string} params.idsCustomerName - \n * @param {string} params.loginToken - \n * @param {object} params.metadata - Free-form jsonb this tenant owns, and the extension point this entity has never had — anything about the partner relationship that this app does not model, up to the day it earns a column. Nothing here is read when a visit is served: the account's own columns are what the app acts on, `source_data` is what the source said, and this is what you say.\n * @param {string} params.name - \n * @param {string} params.organizationId - \n * @param {string} params.protocol - \n * @param {string} params.protocolVersion - The version of its protocol the account speaks — one of GET /punchout/vocabularies/protocol-versions for that protocol: OCI 4.0 or 5.0 (it decides which fields a hand-back carries), an IDS version this shop answers `SV` with. A cXML account states none; each cXML document carries its own. Any other value is refused. Omitted means the protocol's default.\n * @param {string} params.purchaseMode - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} params.secureOci - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {number} params.sessionTtlOverrideMinutes - How long a visit of this account stays open, overriding the tenant's `session_ttl_minutes` setting. Null — the ordinary case — means the tenant's lifetime.\n * @param {string} params.sharedSecret - \n * @param {object} params.sourceData - What the source said about this account, kept as it said it. Carries the ETag a write-back has to hand back in `If-Match`, and the source fields this app does not model — without it those are lost on the first edit made here. Not a place for anything the partner authenticates with: what an ERP sends to get in is written to the account's own write-only fields, which no route answers.\n * @param {string} params.sourceSyncedAt - When this account was last confirmed against its source. A delta run asks for changes since it, and an operator reads it to see that a feed has gone quiet. Editing the account here does not touch it: it says when the SOURCE was last seen, not when the row changed. Null for an account no source owns.\n * @param {string} params.startPageUrl - Where a buyer of THIS account lands after entry, overriding the tenant's `storefront_url` setting. Leave it empty: the entry URL is derived from the storefront address (`entry_url`), and an override is for a buyer who should land on a page of their own. Its host is the host the entry URL is derived from.\n * @param {string} params.unknownUserPolicy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n */\n punchoutAccountsUpdate(params: { id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string }): Promise<Models.PunchoutAccount>;\n /**\n *\n * @param {string} id - \n * @param {string} authStrategy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} channelCode - \n * @param {string} code - \n * @param {string} credentialDomain - \n * @param {string} credentialIdentity - \n * @param {string} credentialSecret - \n * @param {boolean} echoEntryParameters - OCI only: send the entry call's own query parameters back with the hand-back, for an SRM that expects them. Credential parameters are never sent back. Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} enabled - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} externalId - The key this punchout account has in the system that OWNS it. An account is a partner identity, and the procurement platform on the other side knows the relationship by an id of its own — a supplier id, a vendor number, an IDS customer name. Unique per tenant where it is set, so a repeated import updates the account it wrote last time instead of adding a second one. `code` is what this shop calls the partner; this is what the partner calls itself. Null for an account an operator typed in, which is the ordinary case.\n * @param {object} externalRefs - Every OTHER system that knows this partner, keyed by system name — the ERP's vendor number beside the procurement platform's supplier id, because one customer commonly reaches this shop through both. `external_id` is the leading system; this is the rest, and the next one costs no column. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document — look the account up by `external_id` and read this off the answer.\n * @param {string} fallbackContactId - \n * @param {string} idsCustomerName - \n * @param {string} loginToken - \n * @param {object} metadata - Free-form jsonb this tenant owns, and the extension point this entity has never had — anything about the partner relationship that this app does not model, up to the day it earns a column. Nothing here is read when a visit is served: the account's own columns are what the app acts on, `source_data` is what the source said, and this is what you say.\n * @param {string} name - \n * @param {string} organizationId - \n * @param {string} protocol - \n * @param {string} protocolVersion - The version of its protocol the account speaks — one of GET /punchout/vocabularies/protocol-versions for that protocol: OCI 4.0 or 5.0 (it decides which fields a hand-back carries), an IDS version this shop answers `SV` with. A cXML account states none; each cXML document carries its own. Any other value is refused. Omitted means the protocol's default.\n * @param {string} purchaseMode - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} secureOci - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {number} sessionTtlOverrideMinutes - How long a visit of this account stays open, overriding the tenant's `session_ttl_minutes` setting. Null — the ordinary case — means the tenant's lifetime.\n * @param {string} sharedSecret - \n * @param {object} sourceData - What the source said about this account, kept as it said it. Carries the ETag a write-back has to hand back in `If-Match`, and the source fields this app does not model — without it those are lost on the first edit made here. Not a place for anything the partner authenticates with: what an ERP sends to get in is written to the account's own write-only fields, which no route answers.\n * @param {string} sourceSyncedAt - When this account was last confirmed against its source. A delta run asks for changes since it, and an operator reads it to see that a feed has gone quiet. Editing the account here does not touch it: it says when the SOURCE was last seen, not when the row changed. Null for an account no source owns.\n * @param {string} startPageUrl - Where a buyer of THIS account lands after entry, overriding the tenant's `storefront_url` setting. Leave it empty: the entry URL is derived from the storefront address (`entry_url`), and an override is for a buyer who should land on a page of their own. Its host is the host the entry URL is derived from.\n * @param {string} unknownUserPolicy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsUpdate(id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string): Promise<Models.PunchoutAccount>;\n punchoutAccountsUpdate(\n paramsOrFirst: { id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (boolean)?, (string)?, (object)?, (string)?, (string)?, (string)?, (object)?, (string)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (number)?, (string)?, (object)?, (string)?, (string)?, (string)?] \n ): Promise<Models.PunchoutAccount> {\n let params: { id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n authStrategy: rest[0] as string,\n channelCode: rest[1] as string,\n code: rest[2] as string,\n credentialDomain: rest[3] as string,\n credentialIdentity: rest[4] as string,\n credentialSecret: rest[5] as string,\n echoEntryParameters: rest[6] as boolean,\n enabled: rest[7] as boolean,\n externalId: rest[8] as string,\n externalRefs: rest[9] as object,\n fallbackContactId: rest[10] as string,\n idsCustomerName: rest[11] as string,\n loginToken: rest[12] as string,\n metadata: rest[13] as object,\n name: rest[14] as string,\n organizationId: rest[15] as string,\n protocol: rest[16] as string,\n protocolVersion: rest[17] as string,\n purchaseMode: rest[18] as string,\n secureOci: rest[19] as boolean,\n sessionTtlOverrideMinutes: rest[20] as number,\n sharedSecret: rest[21] as string,\n sourceData: rest[22] as object,\n sourceSyncedAt: rest[23] as string,\n startPageUrl: rest[24] as string,\n unknownUserPolicy: rest[25] as string \n };\n }\n \n const id = params.id;\n const authStrategy = params.authStrategy;\n const channelCode = params.channelCode;\n const code = params.code;\n const credentialDomain = params.credentialDomain;\n const credentialIdentity = params.credentialIdentity;\n const credentialSecret = params.credentialSecret;\n const echoEntryParameters = params.echoEntryParameters;\n const enabled = params.enabled;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const fallbackContactId = params.fallbackContactId;\n const idsCustomerName = params.idsCustomerName;\n const loginToken = params.loginToken;\n const metadata = params.metadata;\n const name = params.name;\n const organizationId = params.organizationId;\n const protocol = params.protocol;\n const protocolVersion = params.protocolVersion;\n const purchaseMode = params.purchaseMode;\n const secureOci = params.secureOci;\n const sessionTtlOverrideMinutes = params.sessionTtlOverrideMinutes;\n const sharedSecret = params.sharedSecret;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const startPageUrl = params.startPageUrl;\n const unknownUserPolicy = params.unknownUserPolicy;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/punchout/accounts/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof authStrategy !== 'undefined') {\n apiPayload['auth_strategy'] = authStrategy;\n }\n if (typeof channelCode !== 'undefined') {\n apiPayload['channel_code'] = channelCode;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof credentialDomain !== 'undefined') {\n apiPayload['credential_domain'] = credentialDomain;\n }\n if (typeof credentialIdentity !== 'undefined') {\n apiPayload['credential_identity'] = credentialIdentity;\n }\n if (typeof credentialSecret !== 'undefined') {\n apiPayload['credential_secret'] = credentialSecret;\n }\n if (typeof echoEntryParameters !== 'undefined') {\n apiPayload['echo_entry_parameters'] = echoEntryParameters;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof fallbackContactId !== 'undefined') {\n apiPayload['fallback_contact_id'] = fallbackContactId;\n }\n if (typeof idsCustomerName !== 'undefined') {\n apiPayload['ids_customer_name'] = idsCustomerName;\n }\n if (typeof loginToken !== 'undefined') {\n apiPayload['login_token'] = loginToken;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof protocolVersion !== 'undefined') {\n apiPayload['protocol_version'] = protocolVersion;\n }\n if (typeof purchaseMode !== 'undefined') {\n apiPayload['purchase_mode'] = purchaseMode;\n }\n if (typeof secureOci !== 'undefined') {\n apiPayload['secure_oci'] = secureOci;\n }\n if (typeof sessionTtlOverrideMinutes !== 'undefined') {\n apiPayload['session_ttl_override_minutes'] = sessionTtlOverrideMinutes;\n }\n if (typeof sharedSecret !== 'undefined') {\n apiPayload['shared_secret'] = sharedSecret;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof startPageUrl !== 'undefined') {\n apiPayload['start_page_url'] = startPageUrl;\n }\n if (typeof unknownUserPolicy !== 'undefined') {\n apiPayload['unknown_user_policy'] = unknownUserPolicy;\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 * What a buyer's system would receive, before a buyer is in the shop: the account's mappings run over a cart that exists, through the same production code a real hand-back runs, and the field set or the document that comes out. Writes nothing — no visit, no transfer, no correlation key kept — and posts nothing. `mapping` says which mappings produced nothing and why, because a field the document deliberately leaves out reads exactly like one whose source resolved to nothing and only one of the two is a fault.\n *\n * @param {string} params.id - \n * @param {string} params.cartId - The cart to produce the payload for — already priced, the way a hand-back reads one.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutReturnPreview>}\n */\n punchoutAccountsPreview(params: { id: string, cartId: string }): Promise<Models.PunchoutReturnPreview>;\n /**\n * What a buyer's system would receive, before a buyer is in the shop: the account's mappings run over a cart that exists, through the same production code a real hand-back runs, and the field set or the document that comes out. Writes nothing — no visit, no transfer, no correlation key kept — and posts nothing. `mapping` says which mappings produced nothing and why, because a field the document deliberately leaves out reads exactly like one whose source resolved to nothing and only one of the two is a fault.\n *\n * @param {string} id - \n * @param {string} cartId - The cart to produce the payload for — already priced, the way a hand-back reads one.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutReturnPreview>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsPreview(id: string, cartId: string): Promise<Models.PunchoutReturnPreview>;\n punchoutAccountsPreview(\n paramsOrFirst: { id: string, cartId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.PunchoutReturnPreview> {\n let params: { id: string, cartId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, cartId: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n cartId: rest[0] as string \n };\n }\n \n const id = params.id;\n const cartId = params.cartId;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof cartId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"cartId\"');\n }\n\n const apiPath = '/v1/punchout/accounts/{id}/preview'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\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 * Punchout entry is served on the tenant's own storefront host and never by this app (adr/ADR-0002), so whether an account is reachable is a fact about somebody else's runtime — a per-DOMAIN fact, which no install-time check can see. The probe calls the account's own public entry address, carrying a single-use token this app's entry route echoes back, and records what it found: reachable, not_found, not_entry, wrong_host, tls, timeout, unreachable, unconfigured. Only the echo counts as reachable — a storefront that answers 200 with its own page for every unknown path is exactly the setup this exists to catch. The outcome, the address it was taken on and what came back are answered and kept on the account. Changing the entry URL retires the finding.\n *\n * @param {string} params.id - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryProbeResult>}\n */\n punchoutAccountsProbe(params: { id: string, data: object }): Promise<Models.PunchoutEntryProbeResult>;\n /**\n * Punchout entry is served on the tenant's own storefront host and never by this app (adr/ADR-0002), so whether an account is reachable is a fact about somebody else's runtime — a per-DOMAIN fact, which no install-time check can see. The probe calls the account's own public entry address, carrying a single-use token this app's entry route echoes back, and records what it found: reachable, not_found, not_entry, wrong_host, tls, timeout, unreachable, unconfigured. Only the echo counts as reachable — a storefront that answers 200 with its own page for every unknown path is exactly the setup this exists to catch. The outcome, the address it was taken on and what came back are answered and kept on the account. Changing the entry URL retires the finding.\n *\n * @param {string} id - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryProbeResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsProbe(id: string, data: object): Promise<Models.PunchoutEntryProbeResult>;\n punchoutAccountsProbe(\n paramsOrFirst: { id: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutEntryProbeResult> {\n let params: { id: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, data: object };\n } else {\n params = {\n id: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const id = params.id;\n const data = params.data;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/accounts/{id}/probe'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 operator's way to tell \"the ERP is configured wrong\" from \"we are broken\", with no procurement system in the loop. Builds the entry call this account would receive — its own credentials, in the transport its standard uses — hands it to the same adapter an ERP reaches, and answers the status, the headers and the body the storefront would have written out, rather than a summary of them. It leaves nothing that acts: an entry call opens a visit, so the visit it opened is marked as the tester's and revoked before the answer goes back, its refusals do not count against the credential throttle, and it sends no action that imports a cart. It creates no cart and records no transfer.\n *\n * @param {string} params.id - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryTestResult>}\n */\n punchoutAccountsTest(params: { id: string, data: object }): Promise<Models.PunchoutEntryTestResult>;\n /**\n * The operator's way to tell \"the ERP is configured wrong\" from \"we are broken\", with no procurement system in the loop. Builds the entry call this account would receive — its own credentials, in the transport its standard uses — hands it to the same adapter an ERP reaches, and answers the status, the headers and the body the storefront would have written out, rather than a summary of them. It leaves nothing that acts: an entry call opens a visit, so the visit it opened is marked as the tester's and revoked before the answer goes back, its refusals do not count against the credential throttle, and it sends no action that imports a cart. It creates no cart and records no transfer.\n *\n * @param {string} id - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryTestResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsTest(id: string, data: object): Promise<Models.PunchoutEntryTestResult>;\n punchoutAccountsTest(\n paramsOrFirst: { id: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutEntryTestResult> {\n let params: { id: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, data: object };\n } else {\n params = {\n id: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const id = params.id;\n const data = params.data;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/accounts/{id}/test'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 *\n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutDefaultsResult>}\n */\n punchoutDefaults(params: { data: object }): Promise<Models.PunchoutDefaultsResult>;\n /**\n *\n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutDefaultsResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutDefaults(data: object): Promise<Models.PunchoutDefaultsResult>;\n punchoutDefaults(\n paramsOrFirst: { data: object } | object \n ): Promise<Models.PunchoutDefaultsResult> {\n let params: { data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('data' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { data: object };\n } else {\n params = {\n data: paramsOrFirst as object \n };\n }\n \n const data = params.data;\n\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/defaults';\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutEntryRefusalsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutEntryRefusalsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutEntryRefusalsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/entry-refusals';\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 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 * cXML PunchOutSetupRequest for the account named in the path. The answer must be the PunchOutSetupResponse itself, in the same HTTP response — which is the whole reason ADR-0002 exists. What authenticates is Sender/Credential, not From: in the usual shape a network hub has already verified the buyer and presents its OWN credential (§5.3.2.2). Direct PunchOut (§5.7) authenticates by MAC or client certificate and is not supported. A requisition is reopened with operation — create, edit and inspect are served, with the ERP sending the lines back in the request and inspect recorded as view-only; source is not. Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} params.accountCode - \n * @param {string} params.method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} params.bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} params.clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} params.contentType - The body content type as sent.\n * @param {object} params.headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} params.query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n */\n punchoutEntryCxml(params: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object }): Promise<Models.PunchoutEntryResponse>;\n /**\n * cXML PunchOutSetupRequest for the account named in the path. The answer must be the PunchOutSetupResponse itself, in the same HTTP response — which is the whole reason ADR-0002 exists. What authenticates is Sender/Credential, not From: in the usual shape a network hub has already verified the buyer and presents its OWN credential (§5.3.2.2). Direct PunchOut (§5.7) authenticates by MAC or client certificate and is not supported. A requisition is reopened with operation — create, edit and inspect are served, with the ERP sending the lines back in the request and inspect recorded as view-only; source is not. Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} accountCode - \n * @param {string} method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} contentType - The body content type as sent.\n * @param {object} headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutEntryCxml(accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object): Promise<Models.PunchoutEntryResponse>;\n punchoutEntryCxml(\n paramsOrFirst: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (object)?, (object)?] \n ): Promise<Models.PunchoutEntryResponse> {\n let params: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n } else {\n params = {\n accountCode: paramsOrFirst as string,\n method: rest[0] as string,\n bodyB64: rest[1] as string,\n clientIp: rest[2] as string,\n contentType: rest[3] as string,\n headers: rest[4] as object,\n query: rest[5] as object \n };\n }\n \n const accountCode = params.accountCode;\n const method = params.method;\n const bodyB64 = params.bodyB64;\n const clientIp = params.clientIp;\n const contentType = params.contentType;\n const headers = params.headers;\n const query = params.query;\n\n if (typeof accountCode === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountCode\"');\n }\n if (typeof method === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"method\"');\n }\n\n const apiPath = '/v1/punchout/entry/cxml/{account_code}'.replace('{account_code}', accountCode);\n const apiPayload: Payload = {};\n if (typeof bodyB64 !== 'undefined') {\n apiPayload['body_b64'] = bodyB64;\n }\n if (typeof clientIp !== 'undefined') {\n apiPayload['client_ip'] = clientIp;\n }\n if (typeof contentType !== 'undefined') {\n apiPayload['content_type'] = contentType;\n }\n if (typeof headers !== 'undefined') {\n apiPayload['headers'] = headers;\n }\n if (typeof method !== 'undefined') {\n apiPayload['method'] = method;\n }\n if (typeof query !== 'undefined') {\n apiPayload['query'] = query;\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 * IDS entry on one shared endpoint: the account is resolved from kndnr/name_kunde/pw_kunde in the body, because that is how IDS clients are configured. POST-only with multipart/form-data — the standard rules GET out because a cart does not fit in a query string (§5.1a) — and parameter names are lower-case single words. WKE (shop), ADL (one article), AS (a search) and WKS (a cart sent in, which always becomes a NEW cart) authenticate; LI and SV are answered BEFORE authentication, because the standard sends only the action code with them and they are what makes setup self-service. HLS, the heating-label list, is refused as not implemented rather than falling through to \"come in and shop\". Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} params.method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} params.bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} params.clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} params.contentType - The body content type as sent.\n * @param {object} params.headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} params.query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n */\n punchoutEntryIds(params: { method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object }): Promise<Models.PunchoutEntryResponse>;\n /**\n * IDS entry on one shared endpoint: the account is resolved from kndnr/name_kunde/pw_kunde in the body, because that is how IDS clients are configured. POST-only with multipart/form-data — the standard rules GET out because a cart does not fit in a query string (§5.1a) — and parameter names are lower-case single words. WKE (shop), ADL (one article), AS (a search) and WKS (a cart sent in, which always becomes a NEW cart) authenticate; LI and SV are answered BEFORE authentication, because the standard sends only the action code with them and they are what makes setup self-service. HLS, the heating-label list, is refused as not implemented rather than falling through to \"come in and shop\". Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} contentType - The body content type as sent.\n * @param {object} headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutEntryIds(method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object): Promise<Models.PunchoutEntryResponse>;\n punchoutEntryIds(\n paramsOrFirst: { method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object } | string,\n ...rest: [(string)?, (string)?, (string)?, (object)?, (object)?] \n ): Promise<Models.PunchoutEntryResponse> {\n let params: { method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n } else {\n params = {\n method: paramsOrFirst as string,\n bodyB64: rest[0] as string,\n clientIp: rest[1] as string,\n contentType: rest[2] as string,\n headers: rest[3] as object,\n query: rest[4] as object \n };\n }\n \n const method = params.method;\n const bodyB64 = params.bodyB64;\n const clientIp = params.clientIp;\n const contentType = params.contentType;\n const headers = params.headers;\n const query = params.query;\n\n if (typeof method === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"method\"');\n }\n\n const apiPath = '/v1/punchout/entry/ids';\n const apiPayload: Payload = {};\n if (typeof bodyB64 !== 'undefined') {\n apiPayload['body_b64'] = bodyB64;\n }\n if (typeof clientIp !== 'undefined') {\n apiPayload['client_ip'] = clientIp;\n }\n if (typeof contentType !== 'undefined') {\n apiPayload['content_type'] = contentType;\n }\n if (typeof headers !== 'undefined') {\n apiPayload['headers'] = headers;\n }\n if (typeof method !== 'undefined') {\n apiPayload['method'] = method;\n }\n if (typeof query !== 'undefined') {\n apiPayload['query'] = query;\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 * OCI entry for the account named in the path — V8's externalIdentifier, so an existing ERP configuration migrates unchanged. Answers a 302 to the account's start page carrying the session handle, and nothing else: no credential and no sign-in secret ride in a redirect. FUNCTION is a closed upper-case set and only its ABSENCE means \"let the buyer shop\"; the Level 2 functions (DETAIL, VALIDATE, SOURCING, BACKGROUND_SEARCH, DOWNLOADJSON, DETAILADD, QUANTITYCHECK) answer 501 naming the one asked for, and an undefined one a 400 — neither counts against the credential throttle. This address also carries Secure OCI's two backend legs, INITIALIZE and RETRIEVEOCI, where the cart is FETCHED rather than posted. Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} params.accountCode - \n * @param {string} params.method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} params.bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} params.clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} params.contentType - The body content type as sent.\n * @param {object} params.headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} params.query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n */\n punchoutEntryOci(params: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object }): Promise<Models.PunchoutEntryResponse>;\n /**\n * OCI entry for the account named in the path — V8's externalIdentifier, so an existing ERP configuration migrates unchanged. Answers a 302 to the account's start page carrying the session handle, and nothing else: no credential and no sign-in secret ride in a redirect. FUNCTION is a closed upper-case set and only its ABSENCE means \"let the buyer shop\"; the Level 2 functions (DETAIL, VALIDATE, SOURCING, BACKGROUND_SEARCH, DOWNLOADJSON, DETAILADD, QUANTITYCHECK) answer 501 naming the one asked for, and an undefined one a 400 — neither counts against the credential throttle. This address also carries Secure OCI's two backend legs, INITIALIZE and RETRIEVEOCI, where the cart is FETCHED rather than posted. Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} accountCode - \n * @param {string} method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} contentType - The body content type as sent.\n * @param {object} headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutEntryOci(accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object): Promise<Models.PunchoutEntryResponse>;\n punchoutEntryOci(\n paramsOrFirst: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (object)?, (object)?] \n ): Promise<Models.PunchoutEntryResponse> {\n let params: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n } else {\n params = {\n accountCode: paramsOrFirst as string,\n method: rest[0] as string,\n bodyB64: rest[1] as string,\n clientIp: rest[2] as string,\n contentType: rest[3] as string,\n headers: rest[4] as object,\n query: rest[5] as object \n };\n }\n \n const accountCode = params.accountCode;\n const method = params.method;\n const bodyB64 = params.bodyB64;\n const clientIp = params.clientIp;\n const contentType = params.contentType;\n const headers = params.headers;\n const query = params.query;\n\n if (typeof accountCode === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountCode\"');\n }\n if (typeof method === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"method\"');\n }\n\n const apiPath = '/v1/punchout/entry/oci/{account_code}'.replace('{account_code}', accountCode);\n const apiPayload: Payload = {};\n if (typeof bodyB64 !== 'undefined') {\n apiPayload['body_b64'] = bodyB64;\n }\n if (typeof clientIp !== 'undefined') {\n apiPayload['client_ip'] = clientIp;\n }\n if (typeof contentType !== 'undefined') {\n apiPayload['content_type'] = contentType;\n }\n if (typeof headers !== 'undefined') {\n apiPayload['headers'] = headers;\n }\n if (typeof method !== 'undefined') {\n apiPayload['method'] = method;\n }\n if (typeof query !== 'undefined') {\n apiPayload['query'] = query;\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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutFieldMappingsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutFieldMappingsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/field-mappings';\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 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 *\n * @param {string} params.protocol - \n * @param {string} params.source - \n * @param {string} params.target - \n * @param {string} params.targetKind - \n * @param {string} params.accountId - \n * @param {string} params.document - \n * @param {string} params.emit - \n * @param {boolean} params.enabled - \n * @param {object} params.mutators - \n * @param {number} params.position - \n * @param {string} params.scope - \n * @param {object} params.sourceConfig - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n */\n punchoutFieldMappingsCreate(params: { protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object }): Promise<Models.PunchoutFieldMapping>;\n /**\n *\n * @param {string} protocol - \n * @param {string} source - \n * @param {string} target - \n * @param {string} targetKind - \n * @param {string} accountId - \n * @param {string} document - \n * @param {string} emit - \n * @param {boolean} enabled - \n * @param {object} mutators - \n * @param {number} position - \n * @param {string} scope - \n * @param {object} sourceConfig - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsCreate(protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object): Promise<Models.PunchoutFieldMapping>;\n punchoutFieldMappingsCreate(\n paramsOrFirst: { protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (object)?, (number)?, (string)?, (object)?] \n ): Promise<Models.PunchoutFieldMapping> {\n let params: { protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object };\n } else {\n params = {\n protocol: paramsOrFirst as string,\n source: rest[0] as string,\n target: rest[1] as string,\n targetKind: rest[2] as string,\n accountId: rest[3] as string,\n document: rest[4] as string,\n emit: rest[5] as string,\n enabled: rest[6] as boolean,\n mutators: rest[7] as object,\n position: rest[8] as number,\n scope: rest[9] as string,\n sourceConfig: rest[10] as object \n };\n }\n \n const protocol = params.protocol;\n const source = params.source;\n const target = params.target;\n const targetKind = params.targetKind;\n const accountId = params.accountId;\n const document = params.document;\n const emit = params.emit;\n const enabled = params.enabled;\n const mutators = params.mutators;\n const position = params.position;\n const scope = params.scope;\n const sourceConfig = params.sourceConfig;\n\n if (typeof protocol === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"protocol\"');\n }\n if (typeof source === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"source\"');\n }\n if (typeof target === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"target\"');\n }\n if (typeof targetKind === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"targetKind\"');\n }\n\n const apiPath = '/v1/punchout/field-mappings';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof document !== 'undefined') {\n apiPayload['document'] = document;\n }\n if (typeof emit !== 'undefined') {\n apiPayload['emit'] = emit;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof mutators !== 'undefined') {\n apiPayload['mutators'] = mutators;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof scope !== 'undefined') {\n apiPayload['scope'] = scope;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n if (typeof sourceConfig !== 'undefined') {\n apiPayload['source_config'] = sourceConfig;\n }\n if (typeof target !== 'undefined') {\n apiPayload['target'] = target;\n }\n if (typeof targetKind !== 'undefined') {\n apiPayload['target_kind'] = targetKind;\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 inverse of the import, and what makes a configuration reviewable and restorable outside the editor — and diffable against the installation it came from. Not a perfect inverse, and it says so: a mapping whose source the old platform has no driver for is left out and named in `dropped`.\n *\n * @param {string} params.accountId - The account whose mappings are written out.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMappingExportResult>}\n */\n punchoutFieldMappingsExport(params: { accountId: string }): Promise<Models.PunchoutFieldMappingExportResult>;\n /**\n * The inverse of the import, and what makes a configuration reviewable and restorable outside the editor — and diffable against the installation it came from. Not a perfect inverse, and it says so: a mapping whose source the old platform has no driver for is left out and named in `dropped`.\n *\n * @param {string} accountId - The account whose mappings are written out.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMappingExportResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsExport(accountId: string): Promise<Models.PunchoutFieldMappingExportResult>;\n punchoutFieldMappingsExport(\n paramsOrFirst: { accountId: string } | string \n ): Promise<Models.PunchoutFieldMappingExportResult> {\n let params: { accountId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountId: string };\n } else {\n params = {\n accountId: paramsOrFirst as string \n };\n }\n \n const accountId = params.accountId;\n\n if (typeof accountId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountId\"');\n }\n\n const apiPath = '/v1/punchout/field-mappings/export';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\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 * Takes a V8 `field_mapping` — the whole column, one protocol's sub-object, or what V8's own export action writes — and records it as mappings for one account. Idempotent on the record's own key (protocol, document, scope, target): re-importing a corrected configuration corrects the rows rather than adding beside them, which is what makes a migration rehearsable. A rule this vocabulary cannot express is NEVER stored and comes back in `refused` with the target it filled, the type it named and why; `skipped` names a group the old platform itself never read.\n *\n * @param {string} params.accountId - The account the configuration belongs to.\n * @param {object} params.configuration - The configuration as the old platform stored it.\n * @param {Protocol} params.protocol - Optional, and only as a check: it has to be the protocol the account speaks. IDS has no configuration to carry over — the old platform held its document in code.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMappingImportResult>}\n */\n punchoutFieldMappingsImport(params: { accountId: string, configuration: object, protocol?: Protocol }): Promise<Models.PunchoutFieldMappingImportResult>;\n /**\n * Takes a V8 `field_mapping` — the whole column, one protocol's sub-object, or what V8's own export action writes — and records it as mappings for one account. Idempotent on the record's own key (protocol, document, scope, target): re-importing a corrected configuration corrects the rows rather than adding beside them, which is what makes a migration rehearsable. A rule this vocabulary cannot express is NEVER stored and comes back in `refused` with the target it filled, the type it named and why; `skipped` names a group the old platform itself never read.\n *\n * @param {string} accountId - The account the configuration belongs to.\n * @param {object} configuration - The configuration as the old platform stored it.\n * @param {Protocol} protocol - Optional, and only as a check: it has to be the protocol the account speaks. IDS has no configuration to carry over — the old platform held its document in code.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMappingImportResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsImport(accountId: string, configuration: object, protocol?: Protocol): Promise<Models.PunchoutFieldMappingImportResult>;\n punchoutFieldMappingsImport(\n paramsOrFirst: { accountId: string, configuration: object, protocol?: Protocol } | string,\n ...rest: [(object)?, (Protocol)?] \n ): Promise<Models.PunchoutFieldMappingImportResult> {\n let params: { accountId: string, configuration: object, protocol?: Protocol };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountId: string, configuration: object, protocol?: Protocol };\n } else {\n params = {\n accountId: paramsOrFirst as string,\n configuration: rest[0] as object,\n protocol: rest[1] as Protocol \n };\n }\n \n const accountId = params.accountId;\n const configuration = params.configuration;\n const protocol = params.protocol;\n\n if (typeof accountId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountId\"');\n }\n if (typeof configuration === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"configuration\"');\n }\n\n const apiPath = '/v1/punchout/field-mappings/import';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof configuration !== 'undefined') {\n apiPayload['configuration'] = configuration;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutFieldMappingsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsDelete(id: string): Promise<{}>;\n punchoutFieldMappingsDelete(\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/punchout/field-mappings/{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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n */\n punchoutFieldMappingsGet(params: { id: string }): Promise<Models.PunchoutFieldMapping>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsGet(id: string): Promise<Models.PunchoutFieldMapping>;\n punchoutFieldMappingsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutFieldMapping> {\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/punchout/field-mappings/{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 *\n * @param {string} params.id - \n * @param {string} params.accountId - \n * @param {string} params.document - \n * @param {string} params.emit - \n * @param {boolean} params.enabled - \n * @param {object} params.mutators - \n * @param {number} params.position - \n * @param {string} params.protocol - \n * @param {string} params.scope - \n * @param {string} params.source - \n * @param {object} params.sourceConfig - \n * @param {string} params.target - \n * @param {string} params.targetKind - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n */\n punchoutFieldMappingsUpdate(params: { id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string }): Promise<Models.PunchoutFieldMapping>;\n /**\n *\n * @param {string} id - \n * @param {string} accountId - \n * @param {string} document - \n * @param {string} emit - \n * @param {boolean} enabled - \n * @param {object} mutators - \n * @param {number} position - \n * @param {string} protocol - \n * @param {string} scope - \n * @param {string} source - \n * @param {object} sourceConfig - \n * @param {string} target - \n * @param {string} targetKind - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsUpdate(id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string): Promise<Models.PunchoutFieldMapping>;\n punchoutFieldMappingsUpdate(\n paramsOrFirst: { id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (boolean)?, (object)?, (number)?, (string)?, (string)?, (string)?, (object)?, (string)?, (string)?] \n ): Promise<Models.PunchoutFieldMapping> {\n let params: { id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n accountId: rest[0] as string,\n document: rest[1] as string,\n emit: rest[2] as string,\n enabled: rest[3] as boolean,\n mutators: rest[4] as object,\n position: rest[5] as number,\n protocol: rest[6] as string,\n scope: rest[7] as string,\n source: rest[8] as string,\n sourceConfig: rest[9] as object,\n target: rest[10] as string,\n targetKind: rest[11] as string \n };\n }\n \n const id = params.id;\n const accountId = params.accountId;\n const document = params.document;\n const emit = params.emit;\n const enabled = params.enabled;\n const mutators = params.mutators;\n const position = params.position;\n const protocol = params.protocol;\n const scope = params.scope;\n const source = params.source;\n const sourceConfig = params.sourceConfig;\n const target = params.target;\n const targetKind = params.targetKind;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/punchout/field-mappings/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof document !== 'undefined') {\n apiPayload['document'] = document;\n }\n if (typeof emit !== 'undefined') {\n apiPayload['emit'] = emit;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof mutators !== 'undefined') {\n apiPayload['mutators'] = mutators;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof scope !== 'undefined') {\n apiPayload['scope'] = scope;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n if (typeof sourceConfig !== 'undefined') {\n apiPayload['source_config'] = sourceConfig;\n }\n if (typeof target !== 'undefined') {\n apiPayload['target'] = target;\n }\n if (typeof targetKind !== 'undefined') {\n apiPayload['target_kind'] = targetKind;\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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutSessionsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutSessionsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/sessions';\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 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 *\n * @param {string} params.accountId - \n * @param {string} params.channelCode - \n * @param {string} params.expiresAt - \n * @param {string} params.protocol - \n * @param {string} params.psid - \n * @param {string} params.cartId - \n * @param {string} params.claimedAt - \n * @param {string} params.closedReason - \n * @param {string} params.contactId - \n * @param {string} params.correlationKey - \n * @param {string} params.entryAction - \n * @param {object} params.entryIntent - \n * @param {object} params.entryPayload - \n * @param {string} params.externalUserId - \n * @param {string} params.orderId - \n * @param {string} params.orderNumber - \n * @param {string} params.orderStatus - \n * @param {string} params.orderedAt - \n * @param {string} params.organizationId - \n * @param {string} params.origin - \n * @param {string} params.purchaseMode - \n * @param {string} params.returnMethod - \n * @param {string} params.returnUrl - \n * @param {string} params.secureSessionId - \n * @param {string} params.secureSessionUsedAt - \n * @param {string} params.secureTransmissionId - \n * @param {string} params.status - \n * @param {string} params.transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n */\n punchoutSessionsCreate(params: { accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string }): Promise<Models.PunchoutSession>;\n /**\n *\n * @param {string} accountId - \n * @param {string} channelCode - \n * @param {string} expiresAt - \n * @param {string} protocol - \n * @param {string} psid - \n * @param {string} cartId - \n * @param {string} claimedAt - \n * @param {string} closedReason - \n * @param {string} contactId - \n * @param {string} correlationKey - \n * @param {string} entryAction - \n * @param {object} entryIntent - \n * @param {object} entryPayload - \n * @param {string} externalUserId - \n * @param {string} orderId - \n * @param {string} orderNumber - \n * @param {string} orderStatus - \n * @param {string} orderedAt - \n * @param {string} organizationId - \n * @param {string} origin - \n * @param {string} purchaseMode - \n * @param {string} returnMethod - \n * @param {string} returnUrl - \n * @param {string} secureSessionId - \n * @param {string} secureSessionUsedAt - \n * @param {string} secureTransmissionId - \n * @param {string} status - \n * @param {string} transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsCreate(accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string): Promise<Models.PunchoutSession>;\n punchoutSessionsCreate(\n paramsOrFirst: { accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (object)?, (object)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.PunchoutSession> {\n let params: { accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string };\n } else {\n params = {\n accountId: paramsOrFirst as string,\n channelCode: rest[0] as string,\n expiresAt: rest[1] as string,\n protocol: rest[2] as string,\n psid: rest[3] as string,\n cartId: rest[4] as string,\n claimedAt: rest[5] as string,\n closedReason: rest[6] as string,\n contactId: rest[7] as string,\n correlationKey: rest[8] as string,\n entryAction: rest[9] as string,\n entryIntent: rest[10] as object,\n entryPayload: rest[11] as object,\n externalUserId: rest[12] as string,\n orderId: rest[13] as string,\n orderNumber: rest[14] as string,\n orderStatus: rest[15] as string,\n orderedAt: rest[16] as string,\n organizationId: rest[17] as string,\n origin: rest[18] as string,\n purchaseMode: rest[19] as string,\n returnMethod: rest[20] as string,\n returnUrl: rest[21] as string,\n secureSessionId: rest[22] as string,\n secureSessionUsedAt: rest[23] as string,\n secureTransmissionId: rest[24] as string,\n status: rest[25] as string,\n transferredAt: rest[26] as string \n };\n }\n \n const accountId = params.accountId;\n const channelCode = params.channelCode;\n const expiresAt = params.expiresAt;\n const protocol = params.protocol;\n const psid = params.psid;\n const cartId = params.cartId;\n const claimedAt = params.claimedAt;\n const closedReason = params.closedReason;\n const contactId = params.contactId;\n const correlationKey = params.correlationKey;\n const entryAction = params.entryAction;\n const entryIntent = params.entryIntent;\n const entryPayload = params.entryPayload;\n const externalUserId = params.externalUserId;\n const orderId = params.orderId;\n const orderNumber = params.orderNumber;\n const orderStatus = params.orderStatus;\n const orderedAt = params.orderedAt;\n const organizationId = params.organizationId;\n const origin = params.origin;\n const purchaseMode = params.purchaseMode;\n const returnMethod = params.returnMethod;\n const returnUrl = params.returnUrl;\n const secureSessionId = params.secureSessionId;\n const secureSessionUsedAt = params.secureSessionUsedAt;\n const secureTransmissionId = params.secureTransmissionId;\n const status = params.status;\n const transferredAt = params.transferredAt;\n\n if (typeof accountId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountId\"');\n }\n if (typeof channelCode === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"channelCode\"');\n }\n if (typeof expiresAt === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"expiresAt\"');\n }\n if (typeof protocol === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"protocol\"');\n }\n if (typeof psid === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"psid\"');\n }\n\n const apiPath = '/v1/punchout/sessions';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\n }\n if (typeof channelCode !== 'undefined') {\n apiPayload['channel_code'] = channelCode;\n }\n if (typeof claimedAt !== 'undefined') {\n apiPayload['claimed_at'] = claimedAt;\n }\n if (typeof closedReason !== 'undefined') {\n apiPayload['closed_reason'] = closedReason;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof correlationKey !== 'undefined') {\n apiPayload['correlation_key'] = correlationKey;\n }\n if (typeof entryAction !== 'undefined') {\n apiPayload['entry_action'] = entryAction;\n }\n if (typeof entryIntent !== 'undefined') {\n apiPayload['entry_intent'] = entryIntent;\n }\n if (typeof entryPayload !== 'undefined') {\n apiPayload['entry_payload'] = entryPayload;\n }\n if (typeof expiresAt !== 'undefined') {\n apiPayload['expires_at'] = expiresAt;\n }\n if (typeof externalUserId !== 'undefined') {\n apiPayload['external_user_id'] = externalUserId;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n if (typeof orderNumber !== 'undefined') {\n apiPayload['order_number'] = orderNumber;\n }\n if (typeof orderStatus !== 'undefined') {\n apiPayload['order_status'] = orderStatus;\n }\n if (typeof orderedAt !== 'undefined') {\n apiPayload['ordered_at'] = orderedAt;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof origin !== 'undefined') {\n apiPayload['origin'] = origin;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof psid !== 'undefined') {\n apiPayload['psid'] = psid;\n }\n if (typeof purchaseMode !== 'undefined') {\n apiPayload['purchase_mode'] = purchaseMode;\n }\n if (typeof returnMethod !== 'undefined') {\n apiPayload['return_method'] = returnMethod;\n }\n if (typeof returnUrl !== 'undefined') {\n apiPayload['return_url'] = returnUrl;\n }\n if (typeof secureSessionId !== 'undefined') {\n apiPayload['secure_session_id'] = secureSessionId;\n }\n if (typeof secureSessionUsedAt !== 'undefined') {\n apiPayload['secure_session_used_at'] = secureSessionUsedAt;\n }\n if (typeof secureTransmissionId !== 'undefined') {\n apiPayload['secure_transmission_id'] = secureTransmissionId;\n }\n if (typeof status !== 'undefined') {\n apiPayload['status'] = status;\n }\n if (typeof transferredAt !== 'undefined') {\n apiPayload['transferred_at'] = transferredAt;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutSessionsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsDelete(id: string): Promise<{}>;\n punchoutSessionsDelete(\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/punchout/sessions/{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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n */\n punchoutSessionsGet(params: { id: string }): Promise<Models.PunchoutSession>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsGet(id: string): Promise<Models.PunchoutSession>;\n punchoutSessionsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutSession> {\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/punchout/sessions/{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 *\n * @param {string} params.id - \n * @param {string} params.accountId - \n * @param {string} params.cartId - \n * @param {string} params.channelCode - \n * @param {string} params.claimedAt - \n * @param {string} params.closedReason - \n * @param {string} params.contactId - \n * @param {string} params.correlationKey - \n * @param {string} params.entryAction - \n * @param {object} params.entryIntent - \n * @param {object} params.entryPayload - \n * @param {string} params.expiresAt - \n * @param {string} params.externalUserId - \n * @param {string} params.orderId - \n * @param {string} params.orderNumber - \n * @param {string} params.orderStatus - \n * @param {string} params.orderedAt - \n * @param {string} params.organizationId - \n * @param {string} params.origin - \n * @param {string} params.protocol - \n * @param {string} params.psid - \n * @param {string} params.purchaseMode - \n * @param {string} params.returnMethod - \n * @param {string} params.returnUrl - \n * @param {string} params.secureSessionId - \n * @param {string} params.secureSessionUsedAt - \n * @param {string} params.secureTransmissionId - \n * @param {string} params.status - \n * @param {string} params.transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n */\n punchoutSessionsUpdate(params: { id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string }): Promise<Models.PunchoutSession>;\n /**\n *\n * @param {string} id - \n * @param {string} accountId - \n * @param {string} cartId - \n * @param {string} channelCode - \n * @param {string} claimedAt - \n * @param {string} closedReason - \n * @param {string} contactId - \n * @param {string} correlationKey - \n * @param {string} entryAction - \n * @param {object} entryIntent - \n * @param {object} entryPayload - \n * @param {string} expiresAt - \n * @param {string} externalUserId - \n * @param {string} orderId - \n * @param {string} orderNumber - \n * @param {string} orderStatus - \n * @param {string} orderedAt - \n * @param {string} organizationId - \n * @param {string} origin - \n * @param {string} protocol - \n * @param {string} psid - \n * @param {string} purchaseMode - \n * @param {string} returnMethod - \n * @param {string} returnUrl - \n * @param {string} secureSessionId - \n * @param {string} secureSessionUsedAt - \n * @param {string} secureTransmissionId - \n * @param {string} status - \n * @param {string} transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsUpdate(id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string): Promise<Models.PunchoutSession>;\n punchoutSessionsUpdate(\n paramsOrFirst: { id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (object)?, (object)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.PunchoutSession> {\n let params: { id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n accountId: rest[0] as string,\n cartId: rest[1] as string,\n channelCode: rest[2] as string,\n claimedAt: rest[3] as string,\n closedReason: rest[4] as string,\n contactId: rest[5] as string,\n correlationKey: rest[6] as string,\n entryAction: rest[7] as string,\n entryIntent: rest[8] as object,\n entryPayload: rest[9] as object,\n expiresAt: rest[10] as string,\n externalUserId: rest[11] as string,\n orderId: rest[12] as string,\n orderNumber: rest[13] as string,\n orderStatus: rest[14] as string,\n orderedAt: rest[15] as string,\n organizationId: rest[16] as string,\n origin: rest[17] as string,\n protocol: rest[18] as string,\n psid: rest[19] as string,\n purchaseMode: rest[20] as string,\n returnMethod: rest[21] as string,\n returnUrl: rest[22] as string,\n secureSessionId: rest[23] as string,\n secureSessionUsedAt: rest[24] as string,\n secureTransmissionId: rest[25] as string,\n status: rest[26] as string,\n transferredAt: rest[27] as string \n };\n }\n \n const id = params.id;\n const accountId = params.accountId;\n const cartId = params.cartId;\n const channelCode = params.channelCode;\n const claimedAt = params.claimedAt;\n const closedReason = params.closedReason;\n const contactId = params.contactId;\n const correlationKey = params.correlationKey;\n const entryAction = params.entryAction;\n const entryIntent = params.entryIntent;\n const entryPayload = params.entryPayload;\n const expiresAt = params.expiresAt;\n const externalUserId = params.externalUserId;\n const orderId = params.orderId;\n const orderNumber = params.orderNumber;\n const orderStatus = params.orderStatus;\n const orderedAt = params.orderedAt;\n const organizationId = params.organizationId;\n const origin = params.origin;\n const protocol = params.protocol;\n const psid = params.psid;\n const purchaseMode = params.purchaseMode;\n const returnMethod = params.returnMethod;\n const returnUrl = params.returnUrl;\n const secureSessionId = params.secureSessionId;\n const secureSessionUsedAt = params.secureSessionUsedAt;\n const secureTransmissionId = params.secureTransmissionId;\n const status = params.status;\n const transferredAt = params.transferredAt;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/punchout/sessions/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\n }\n if (typeof channelCode !== 'undefined') {\n apiPayload['channel_code'] = channelCode;\n }\n if (typeof claimedAt !== 'undefined') {\n apiPayload['claimed_at'] = claimedAt;\n }\n if (typeof closedReason !== 'undefined') {\n apiPayload['closed_reason'] = closedReason;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof correlationKey !== 'undefined') {\n apiPayload['correlation_key'] = correlationKey;\n }\n if (typeof entryAction !== 'undefined') {\n apiPayload['entry_action'] = entryAction;\n }\n if (typeof entryIntent !== 'undefined') {\n apiPayload['entry_intent'] = entryIntent;\n }\n if (typeof entryPayload !== 'undefined') {\n apiPayload['entry_payload'] = entryPayload;\n }\n if (typeof expiresAt !== 'undefined') {\n apiPayload['expires_at'] = expiresAt;\n }\n if (typeof externalUserId !== 'undefined') {\n apiPayload['external_user_id'] = externalUserId;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n if (typeof orderNumber !== 'undefined') {\n apiPayload['order_number'] = orderNumber;\n }\n if (typeof orderStatus !== 'undefined') {\n apiPayload['order_status'] = orderStatus;\n }\n if (typeof orderedAt !== 'undefined') {\n apiPayload['ordered_at'] = orderedAt;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof origin !== 'undefined') {\n apiPayload['origin'] = origin;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof psid !== 'undefined') {\n apiPayload['psid'] = psid;\n }\n if (typeof purchaseMode !== 'undefined') {\n apiPayload['purchase_mode'] = purchaseMode;\n }\n if (typeof returnMethod !== 'undefined') {\n apiPayload['return_method'] = returnMethod;\n }\n if (typeof returnUrl !== 'undefined') {\n apiPayload['return_url'] = returnUrl;\n }\n if (typeof secureSessionId !== 'undefined') {\n apiPayload['secure_session_id'] = secureSessionId;\n }\n if (typeof secureSessionUsedAt !== 'undefined') {\n apiPayload['secure_session_used_at'] = secureSessionUsedAt;\n }\n if (typeof secureTransmissionId !== 'undefined') {\n apiPayload['secure_transmission_id'] = secureTransmissionId;\n }\n if (typeof status !== 'undefined') {\n apiPayload['status'] = status;\n }\n if (typeof transferredAt !== 'undefined') {\n apiPayload['transferred_at'] = transferredAt;\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 * The start of a punchout visit in the shop. Resolves the buyer the external system named to an ordinary contact — the named one, else the account's fallback contact, else whatever the account's policy for an unknown name says — gives the visit a cart of its own if it brought none (a new, empty one, owned by the visit's handle rather than by the contact, because one contact may carry several ERP users' visits at once), asks the app that owns buyer authentication to sign that contact in, and answers the secret together with the channel, the action and that cart. The secret is single-use and short-lived: redeem it server-side, and keep it out of a redirect URL, a browser history and a Referer. Answered exactly ONCE — the handle travelled through the external system in the clear. A second claim, an expired or revoked visit, one already handed back and a handle nobody minted all get the same answer, deliberately.\n *\n * @param {string} params.psid - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutClaim>}\n */\n punchoutSessionsClaim(params: { psid: string, data: object }): Promise<Models.PunchoutClaim>;\n /**\n * The start of a punchout visit in the shop. Resolves the buyer the external system named to an ordinary contact — the named one, else the account's fallback contact, else whatever the account's policy for an unknown name says — gives the visit a cart of its own if it brought none (a new, empty one, owned by the visit's handle rather than by the contact, because one contact may carry several ERP users' visits at once), asks the app that owns buyer authentication to sign that contact in, and answers the secret together with the channel, the action and that cart. The secret is single-use and short-lived: redeem it server-side, and keep it out of a redirect URL, a browser history and a Referer. Answered exactly ONCE — the handle travelled through the external system in the clear. A second claim, an expired or revoked visit, one already handed back and a handle nobody minted all get the same answer, deliberately.\n *\n * @param {string} psid - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutClaim>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsClaim(psid: string, data: object): Promise<Models.PunchoutClaim>;\n punchoutSessionsClaim(\n paramsOrFirst: { psid: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutClaim> {\n let params: { psid: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { psid: string, data: object };\n } else {\n params = {\n psid: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const psid = params.psid;\n const data = params.data;\n\n if (typeof psid === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"psid\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/sessions/{psid}/claim'.replace('{psid}', psid);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 other way an IDS visit ends, for an account whose purchase mode is order: the buyer checked out in the shop, and the order is an ORDINARY order placed through the ordinary checkout. Call it after the checkout. This app believes the orders app, not the caller: it reads the order the visit's cart became, records its id, number and status on the visit and closes it as ordered. An order awaiting the buyer organisation's approval counts — the cart is converted either way — and a later decline changes nothing here. A visit that ran out while the buyer checked out is still closed as ordered when the order was created before it ran out. A retried call answers the visit as it was closed.\n *\n * @param {string} params.psid - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutOrdered>}\n */\n punchoutSessionsOrdered(params: { psid: string, data: object }): Promise<Models.PunchoutOrdered>;\n /**\n * The other way an IDS visit ends, for an account whose purchase mode is order: the buyer checked out in the shop, and the order is an ORDINARY order placed through the ordinary checkout. Call it after the checkout. This app believes the orders app, not the caller: it reads the order the visit's cart became, records its id, number and status on the visit and closes it as ordered. An order awaiting the buyer organisation's approval counts — the cart is converted either way — and a later decline changes nothing here. A visit that ran out while the buyer checked out is still closed as ordered when the order was created before it ran out. A retried call answers the visit as it was closed.\n *\n * @param {string} psid - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutOrdered>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsOrdered(psid: string, data: object): Promise<Models.PunchoutOrdered>;\n punchoutSessionsOrdered(\n paramsOrFirst: { psid: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutOrdered> {\n let params: { psid: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { psid: string, data: object };\n } else {\n params = {\n psid: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const psid = params.psid;\n const data = params.data;\n\n if (typeof psid === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"psid\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/sessions/{psid}/ordered'.replace('{psid}', psid);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 end of a punchout visit. Answers where the cart goes, by which method and encoding, and the mapped fields to submit — one shape for all three protocols, whether that means dozens of named fields (OCI) or one field holding a whole document (cXML, IDS). The payload is ANSWERED, never posted from here: a request from this app carries none of the buyer's ERP session, and the protocols that expect a browser form post would reject it even if it did. Records a transfer with its normalised lines and the exact payload, mints a correlation key into that payload so an order arriving weeks later can be matched to it, and closes the visit as transferred. Creates NO order and reserves NO stock — the procurement system has decided nothing. On an IDS account whose purchase mode is order_and_transfer the cart was already ordered through the ordinary checkout: the hand-back requires that order, reads it from the orders app, names it in the document (RueckgabeKZ, OrderConfNo) and on the transfer, and closes the visit as transferred. A retried call answers the same payload and records no second transfer; a visit that expired or was revoked is refused, with the same answer a handle that never existed gets.\n *\n * @param {string} params.psid - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutReturnPayload>}\n */\n punchoutSessionsReturn(params: { psid: string, data: object }): Promise<Models.PunchoutReturnPayload>;\n /**\n * The end of a punchout visit. Answers where the cart goes, by which method and encoding, and the mapped fields to submit — one shape for all three protocols, whether that means dozens of named fields (OCI) or one field holding a whole document (cXML, IDS). The payload is ANSWERED, never posted from here: a request from this app carries none of the buyer's ERP session, and the protocols that expect a browser form post would reject it even if it did. Records a transfer with its normalised lines and the exact payload, mints a correlation key into that payload so an order arriving weeks later can be matched to it, and closes the visit as transferred. Creates NO order and reserves NO stock — the procurement system has decided nothing. On an IDS account whose purchase mode is order_and_transfer the cart was already ordered through the ordinary checkout: the hand-back requires that order, reads it from the orders app, names it in the document (RueckgabeKZ, OrderConfNo) and on the transfer, and closes the visit as transferred. A retried call answers the same payload and records no second transfer; a visit that expired or was revoked is refused, with the same answer a handle that never existed gets.\n *\n * @param {string} psid - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutReturnPayload>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsReturn(psid: string, data: object): Promise<Models.PunchoutReturnPayload>;\n punchoutSessionsReturn(\n paramsOrFirst: { psid: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutReturnPayload> {\n let params: { psid: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { psid: string, data: object };\n } else {\n params = {\n psid: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const psid = params.psid;\n const data = params.data;\n\n if (typeof psid === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"psid\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/sessions/{psid}/return'.replace('{psid}', psid);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 steps are the ones cockpit.json declares under setup.steps: the shipped field mappings and the first punchout account. Each is done when its table holds a row, so none is marked by hand.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSetupState>}\n */\n punchoutSetupGet(): Promise<Models.PunchoutSetupState> {\n\n const apiPath = '/v1/punchout/setup';\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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutTransferItemsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransferItemsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutTransferItemsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/transfer-items';\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 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 *\n * @param {string} params.name - \n * @param {number} params.quantity - \n * @param {string} params.transferId - \n * @param {string} params.currency - \n * @param {string} params.externalRef - \n * @param {number} params.lineGross - \n * @param {number} params.lineNet - \n * @param {object} params.metadata - \n * @param {number} params.position - \n * @param {string} params.productId - \n * @param {string} params.sku - \n * @param {number} params.taxRate - \n * @param {string} params.unit - \n * @param {number} params.unitPrice - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransferItem>}\n */\n punchoutTransferItemsCreate(params: { name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number }): Promise<Models.PunchoutTransferItem>;\n /**\n *\n * @param {string} name - \n * @param {number} quantity - \n * @param {string} transferId - \n * @param {string} currency - \n * @param {string} externalRef - \n * @param {number} lineGross - \n * @param {number} lineNet - \n * @param {object} metadata - \n * @param {number} position - \n * @param {string} productId - \n * @param {string} sku - \n * @param {number} taxRate - \n * @param {string} unit - \n * @param {number} unitPrice - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransferItem>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransferItemsCreate(name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number): Promise<Models.PunchoutTransferItem>;\n punchoutTransferItemsCreate(\n paramsOrFirst: { name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number } | string,\n ...rest: [(number)?, (string)?, (string)?, (string)?, (number)?, (number)?, (object)?, (number)?, (string)?, (string)?, (number)?, (string)?, (number)?] \n ): Promise<Models.PunchoutTransferItem> {\n let params: { name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number };\n } else {\n params = {\n name: paramsOrFirst as string,\n quantity: rest[0] as number,\n transferId: rest[1] as string,\n currency: rest[2] as string,\n externalRef: rest[3] as string,\n lineGross: rest[4] as number,\n lineNet: rest[5] as number,\n metadata: rest[6] as object,\n position: rest[7] as number,\n productId: rest[8] as string,\n sku: rest[9] as string,\n taxRate: rest[10] as number,\n unit: rest[11] as string,\n unitPrice: rest[12] as number \n };\n }\n \n const name = params.name;\n const quantity = params.quantity;\n const transferId = params.transferId;\n const currency = params.currency;\n const externalRef = params.externalRef;\n const lineGross = params.lineGross;\n const lineNet = params.lineNet;\n const metadata = params.metadata;\n const position = params.position;\n const productId = params.productId;\n const sku = params.sku;\n const taxRate = params.taxRate;\n const unit = params.unit;\n const unitPrice = params.unitPrice;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof quantity === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"quantity\"');\n }\n if (typeof transferId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"transferId\"');\n }\n\n const apiPath = '/v1/punchout/transfer-items';\n const apiPayload: Payload = {};\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalRef !== 'undefined') {\n apiPayload['external_ref'] = externalRef;\n }\n if (typeof lineGross !== 'undefined') {\n apiPayload['line_gross'] = lineGross;\n }\n if (typeof lineNet !== 'undefined') {\n apiPayload['line_net'] = lineNet;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof productId !== 'undefined') {\n apiPayload['product_id'] = productId;\n }\n if (typeof quantity !== 'undefined') {\n apiPayload['quantity'] = quantity;\n }\n if (typeof sku !== 'undefined') {\n apiPayload['sku'] = sku;\n }\n if (typeof taxRate !== 'undefined') {\n apiPayload['tax_rate'] = taxRate;\n }\n if (typeof transferId !== 'undefined') {\n apiPayload['transfer_id'] = transferId;\n }\n if (typeof unit !== 'undefined') {\n apiPayload['unit'] = unit;\n }\n if (typeof unitPrice !== 'undefined') {\n apiPayload['unit_price'] = unitPrice;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransferItem>}\n */\n punchoutTransferItemsGet(params: { id: string }): Promise<Models.PunchoutTransferItem>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransferItem>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransferItemsGet(id: string): Promise<Models.PunchoutTransferItem>;\n punchoutTransferItemsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutTransferItem> {\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/punchout/transfer-items/{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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutTransfersList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransfersList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutTransfersList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/transfers';\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 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 *\n * @param {string} params.accountId - \n * @param {string} params.correlationKey - \n * @param {string} params.protocol - \n * @param {string} params.sessionId - \n * @param {string} params.cartId - \n * @param {string} params.contactId - \n * @param {string} params.currency - \n * @param {string} params.externalId - The id the receiving system has for this hand-back — a cXML `PayloadID`, the reference an ERP answers the posted cart with. It is the idempotency key of the protocol rather than of this app: unique per tenant where it is set, so a hand-back a buyer's browser replays cannot leave a second transfer on record. Distinct from `correlation_key`, which this app mints and stamps on the visit before the mapping runs — that one is ours and is always there, this one is theirs and is filled by whoever records the receipt.\n * @param {object} params.externalRefs - Every other system that knows this hand-back, keyed by system name — the procurement platform's own id beside the order number the ERP later gives it. `external_id` is the leading system; this is the rest. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document.\n * @param {number} params.itemCount - \n * @param {string} params.matchedAt - \n * @param {string} params.matchedOrderId - \n * @param {string} params.organizationId - \n * @param {object} params.payload - \n * @param {object[]} params.problems - Every field the payload is missing, and why: a mapping that failed, or a value the protocol's type could not take. Empty when nothing is missing. `transfer.degraded` announces the same, once.\n * @param {object} params.sourceData - What the receiving system said back, kept as it said it — the acknowledgement, its ETag, and the fields of it this app does not model. A transfer is evidence and is added to but never rewritten, so this is where a later answer about it goes rather than over `payload`, which is what was handed over and must stay as it was handed over.\n * @param {string} params.sourceSyncedAt - When this transfer was last confirmed against the system that received it — what an acknowledgement run stamps, and what tells an operator that the receipts have stopped arriving. Null while nobody has confirmed it, which is every transfer this app writes on its own: a hand-back answers a payload for a browser to submit, and whether it arrived is somebody else's answer.\n * @param {string} params.targetUrl - \n * @param {number} params.totalGross - \n * @param {number} params.totalNet - \n * @param {string} params.transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n */\n punchoutTransfersCreate(params: { accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string }): Promise<Models.PunchoutTransfer>;\n /**\n *\n * @param {string} accountId - \n * @param {string} correlationKey - \n * @param {string} protocol - \n * @param {string} sessionId - \n * @param {string} cartId - \n * @param {string} contactId - \n * @param {string} currency - \n * @param {string} externalId - The id the receiving system has for this hand-back — a cXML `PayloadID`, the reference an ERP answers the posted cart with. It is the idempotency key of the protocol rather than of this app: unique per tenant where it is set, so a hand-back a buyer's browser replays cannot leave a second transfer on record. Distinct from `correlation_key`, which this app mints and stamps on the visit before the mapping runs — that one is ours and is always there, this one is theirs and is filled by whoever records the receipt.\n * @param {object} externalRefs - Every other system that knows this hand-back, keyed by system name — the procurement platform's own id beside the order number the ERP later gives it. `external_id` is the leading system; this is the rest. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document.\n * @param {number} itemCount - \n * @param {string} matchedAt - \n * @param {string} matchedOrderId - \n * @param {string} organizationId - \n * @param {object} payload - \n * @param {object[]} problems - Every field the payload is missing, and why: a mapping that failed, or a value the protocol's type could not take. Empty when nothing is missing. `transfer.degraded` announces the same, once.\n * @param {object} sourceData - What the receiving system said back, kept as it said it — the acknowledgement, its ETag, and the fields of it this app does not model. A transfer is evidence and is added to but never rewritten, so this is where a later answer about it goes rather than over `payload`, which is what was handed over and must stay as it was handed over.\n * @param {string} sourceSyncedAt - When this transfer was last confirmed against the system that received it — what an acknowledgement run stamps, and what tells an operator that the receipts have stopped arriving. Null while nobody has confirmed it, which is every transfer this app writes on its own: a hand-back answers a payload for a browser to submit, and whether it arrived is somebody else's answer.\n * @param {string} targetUrl - \n * @param {number} totalGross - \n * @param {number} totalNet - \n * @param {string} transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransfersCreate(accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string): Promise<Models.PunchoutTransfer>;\n punchoutTransfersCreate(\n paramsOrFirst: { accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (object)?, (number)?, (string)?, (string)?, (string)?, (object)?, (object[])?, (object)?, (string)?, (string)?, (number)?, (number)?, (string)?] \n ): Promise<Models.PunchoutTransfer> {\n let params: { accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string };\n } else {\n params = {\n accountId: paramsOrFirst as string,\n correlationKey: rest[0] as string,\n protocol: rest[1] as string,\n sessionId: rest[2] as string,\n cartId: rest[3] as string,\n contactId: rest[4] as string,\n currency: rest[5] as string,\n externalId: rest[6] as string,\n externalRefs: rest[7] as object,\n itemCount: rest[8] as number,\n matchedAt: rest[9] as string,\n matchedOrderId: rest[10] as string,\n organizationId: rest[11] as string,\n payload: rest[12] as object,\n problems: rest[13] as object[],\n sourceData: rest[14] as object,\n sourceSyncedAt: rest[15] as string,\n targetUrl: rest[16] as string,\n totalGross: rest[17] as number,\n totalNet: rest[18] as number,\n transferredAt: rest[19] as string \n };\n }\n \n const accountId = params.accountId;\n const correlationKey = params.correlationKey;\n const protocol = params.protocol;\n const sessionId = params.sessionId;\n const cartId = params.cartId;\n const contactId = params.contactId;\n const currency = params.currency;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const itemCount = params.itemCount;\n const matchedAt = params.matchedAt;\n const matchedOrderId = params.matchedOrderId;\n const organizationId = params.organizationId;\n const payload = params.payload;\n const problems = params.problems;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const targetUrl = params.targetUrl;\n const totalGross = params.totalGross;\n const totalNet = params.totalNet;\n const transferredAt = params.transferredAt;\n\n if (typeof accountId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountId\"');\n }\n if (typeof correlationKey === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"correlationKey\"');\n }\n if (typeof protocol === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"protocol\"');\n }\n if (typeof sessionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/v1/punchout/transfers';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof correlationKey !== 'undefined') {\n apiPayload['correlation_key'] = correlationKey;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof itemCount !== 'undefined') {\n apiPayload['item_count'] = itemCount;\n }\n if (typeof matchedAt !== 'undefined') {\n apiPayload['matched_at'] = matchedAt;\n }\n if (typeof matchedOrderId !== 'undefined') {\n apiPayload['matched_order_id'] = matchedOrderId;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof payload !== 'undefined') {\n apiPayload['payload'] = payload;\n }\n if (typeof problems !== 'undefined') {\n apiPayload['problems'] = problems;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof sessionId !== 'undefined') {\n apiPayload['session_id'] = sessionId;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof targetUrl !== 'undefined') {\n apiPayload['target_url'] = targetUrl;\n }\n if (typeof totalGross !== 'undefined') {\n apiPayload['total_gross'] = totalGross;\n }\n if (typeof totalNet !== 'undefined') {\n apiPayload['total_net'] = totalNet;\n }\n if (typeof transferredAt !== 'undefined') {\n apiPayload['transferred_at'] = transferredAt;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n */\n punchoutTransfersGet(params: { id: string }): Promise<Models.PunchoutTransfer>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransfersGet(id: string): Promise<Models.PunchoutTransfer>;\n punchoutTransfersGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutTransfer> {\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/punchout/transfers/{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 *\n * @param {string} params.id - \n * @param {string} params.accountId - \n * @param {string} params.cartId - \n * @param {string} params.contactId - \n * @param {string} params.correlationKey - \n * @param {string} params.currency - \n * @param {string} params.externalId - The id the receiving system has for this hand-back — a cXML `PayloadID`, the reference an ERP answers the posted cart with. It is the idempotency key of the protocol rather than of this app: unique per tenant where it is set, so a hand-back a buyer's browser replays cannot leave a second transfer on record. Distinct from `correlation_key`, which this app mints and stamps on the visit before the mapping runs — that one is ours and is always there, this one is theirs and is filled by whoever records the receipt.\n * @param {object} params.externalRefs - Every other system that knows this hand-back, keyed by system name — the procurement platform's own id beside the order number the ERP later gives it. `external_id` is the leading system; this is the rest. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document.\n * @param {number} params.itemCount - \n * @param {string} params.matchedAt - \n * @param {string} params.matchedOrderId - \n * @param {string} params.organizationId - \n * @param {object} params.payload - \n * @param {object[]} params.problems - Every field the payload is missing, and why: a mapping that failed, or a value the protocol's type could not take. Empty when nothing is missing. `transfer.degraded` announces the same, once.\n * @param {string} params.protocol - \n * @param {string} params.sessionId - \n * @param {object} params.sourceData - What the receiving system said back, kept as it said it — the acknowledgement, its ETag, and the fields of it this app does not model. A transfer is evidence and is added to but never rewritten, so this is where a later answer about it goes rather than over `payload`, which is what was handed over and must stay as it was handed over.\n * @param {string} params.sourceSyncedAt - When this transfer was last confirmed against the system that received it — what an acknowledgement run stamps, and what tells an operator that the receipts have stopped arriving. Null while nobody has confirmed it, which is every transfer this app writes on its own: a hand-back answers a payload for a browser to submit, and whether it arrived is somebody else's answer.\n * @param {string} params.targetUrl - \n * @param {number} params.totalGross - \n * @param {number} params.totalNet - \n * @param {string} params.transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n */\n punchoutTransfersUpdate(params: { id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string }): Promise<Models.PunchoutTransfer>;\n /**\n *\n * @param {string} id - \n * @param {string} accountId - \n * @param {string} cartId - \n * @param {string} contactId - \n * @param {string} correlationKey - \n * @param {string} currency - \n * @param {string} externalId - The id the receiving system has for this hand-back — a cXML `PayloadID`, the reference an ERP answers the posted cart with. It is the idempotency key of the protocol rather than of this app: unique per tenant where it is set, so a hand-back a buyer's browser replays cannot leave a second transfer on record. Distinct from `correlation_key`, which this app mints and stamps on the visit before the mapping runs — that one is ours and is always there, this one is theirs and is filled by whoever records the receipt.\n * @param {object} externalRefs - Every other system that knows this hand-back, keyed by system name — the procurement platform's own id beside the order number the ERP later gives it. `external_id` is the leading system; this is the rest. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document.\n * @param {number} itemCount - \n * @param {string} matchedAt - \n * @param {string} matchedOrderId - \n * @param {string} organizationId - \n * @param {object} payload - \n * @param {object[]} problems - Every field the payload is missing, and why: a mapping that failed, or a value the protocol's type could not take. Empty when nothing is missing. `transfer.degraded` announces the same, once.\n * @param {string} protocol - \n * @param {string} sessionId - \n * @param {object} sourceData - What the receiving system said back, kept as it said it — the acknowledgement, its ETag, and the fields of it this app does not model. A transfer is evidence and is added to but never rewritten, so this is where a later answer about it goes rather than over `payload`, which is what was handed over and must stay as it was handed over.\n * @param {string} sourceSyncedAt - When this transfer was last confirmed against the system that received it — what an acknowledgement run stamps, and what tells an operator that the receipts have stopped arriving. Null while nobody has confirmed it, which is every transfer this app writes on its own: a hand-back answers a payload for a browser to submit, and whether it arrived is somebody else's answer.\n * @param {string} targetUrl - \n * @param {number} totalGross - \n * @param {number} totalNet - \n * @param {string} transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransfersUpdate(id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string): Promise<Models.PunchoutTransfer>;\n punchoutTransfersUpdate(\n paramsOrFirst: { id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (object)?, (number)?, (string)?, (string)?, (string)?, (object)?, (object[])?, (string)?, (string)?, (object)?, (string)?, (string)?, (number)?, (number)?, (string)?] \n ): Promise<Models.PunchoutTransfer> {\n let params: { id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n accountId: rest[0] as string,\n cartId: rest[1] as string,\n contactId: rest[2] as string,\n correlationKey: rest[3] as string,\n currency: rest[4] as string,\n externalId: rest[5] as string,\n externalRefs: rest[6] as object,\n itemCount: rest[7] as number,\n matchedAt: rest[8] as string,\n matchedOrderId: rest[9] as string,\n organizationId: rest[10] as string,\n payload: rest[11] as object,\n problems: rest[12] as object[],\n protocol: rest[13] as string,\n sessionId: rest[14] as string,\n sourceData: rest[15] as object,\n sourceSyncedAt: rest[16] as string,\n targetUrl: rest[17] as string,\n totalGross: rest[18] as number,\n totalNet: rest[19] as number,\n transferredAt: rest[20] as string \n };\n }\n \n const id = params.id;\n const accountId = params.accountId;\n const cartId = params.cartId;\n const contactId = params.contactId;\n const correlationKey = params.correlationKey;\n const currency = params.currency;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const itemCount = params.itemCount;\n const matchedAt = params.matchedAt;\n const matchedOrderId = params.matchedOrderId;\n const organizationId = params.organizationId;\n const payload = params.payload;\n const problems = params.problems;\n const protocol = params.protocol;\n const sessionId = params.sessionId;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const targetUrl = params.targetUrl;\n const totalGross = params.totalGross;\n const totalNet = params.totalNet;\n const transferredAt = params.transferredAt;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/punchout/transfers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof correlationKey !== 'undefined') {\n apiPayload['correlation_key'] = correlationKey;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof itemCount !== 'undefined') {\n apiPayload['item_count'] = itemCount;\n }\n if (typeof matchedAt !== 'undefined') {\n apiPayload['matched_at'] = matchedAt;\n }\n if (typeof matchedOrderId !== 'undefined') {\n apiPayload['matched_order_id'] = matchedOrderId;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof payload !== 'undefined') {\n apiPayload['payload'] = payload;\n }\n if (typeof problems !== 'undefined') {\n apiPayload['problems'] = problems;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof sessionId !== 'undefined') {\n apiPayload['session_id'] = sessionId;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof targetUrl !== 'undefined') {\n apiPayload['target_url'] = targetUrl;\n }\n if (typeof totalGross !== 'undefined') {\n apiPayload['total_gross'] = totalGross;\n }\n if (typeof totalNet !== 'undefined') {\n apiPayload['total_net'] = totalNet;\n }\n if (typeof transferredAt !== 'undefined') {\n apiPayload['transferred_at'] = transferredAt;\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 * Discovery for the vocabulary routes: the enums this app enforces, each with its name, its title and its description — and deliberately WITHOUT its values, so a UI can cache this one small answer and fetch only the value sets it renders. Names: auth-strategies, entry-actions, entry-probe-outcome, mapping-documents, mapping-emit, mapping-mutators, mapping-scopes, mapping-sources, mapping-target-kinds, origins, protocol-versions, protocols, purchase-modes, refusal-reasons, return-methods, session-statuses, unknown-user-policies. Fetch one with GET /punchout/vocabularies/{name}.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutVocabularyIndex>}\n */\n punchoutVocabulariesList(): Promise<Models.PunchoutVocabularyIndex> {\n\n const apiPath = '/v1/punchout/vocabularies';\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 * One vocabulary in full: every permitted value with its title, its description and the badge tone a UI colours it with. The values are read out of the column's CHECK constraint, so the served set IS the set the database accepts and the set the mapping engine understands — a mapping editor offering anything else would produce silently empty fields. `mapping-sources` carries the 25 sources of ADR-0003 (three of them namespaced `cxml.*`, offered only for a cXML account) and `mapping-mutators` the 20 chainable mutators; each value's description names the config keys it reads and which of them are required. Answers 404 for an unknown name.\n *\n * @param {PunchoutVocabulariesGetName} params.name - The vocabulary name — the part after the dot in the qualified id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutVocabulary>}\n */\n punchoutVocabulariesGet(params: { name: PunchoutVocabulariesGetName }): Promise<Models.PunchoutVocabulary>;\n /**\n * One vocabulary in full: every permitted value with its title, its description and the badge tone a UI colours it with. The values are read out of the column's CHECK constraint, so the served set IS the set the database accepts and the set the mapping engine understands — a mapping editor offering anything else would produce silently empty fields. `mapping-sources` carries the 25 sources of ADR-0003 (three of them namespaced `cxml.*`, offered only for a cXML account) and `mapping-mutators` the 20 chainable mutators; each value's description names the config keys it reads and which of them are required. Answers 404 for an unknown name.\n *\n * @param {PunchoutVocabulariesGetName} name - The vocabulary name — the part after the dot in the qualified id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutVocabulary>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutVocabulariesGet(name: PunchoutVocabulariesGetName): Promise<Models.PunchoutVocabulary>;\n punchoutVocabulariesGet(\n paramsOrFirst: { name: PunchoutVocabulariesGetName } | PunchoutVocabulariesGetName \n ): Promise<Models.PunchoutVocabulary> {\n let params: { name: PunchoutVocabulariesGetName };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('name' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: PunchoutVocabulariesGetName };\n } else {\n params = {\n name: paramsOrFirst as PunchoutVocabulariesGetName \n };\n }\n \n const name = params.name;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/punchout/vocabularies/{name}'.replace('{name}', name);\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"]}
1
+ {"version":3,"sources":["../../src/services/punchout.ts"],"names":[],"mappings":"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","sourcesContent":["import { RevenexxException, Client, type Payload, UploadProgress } from '../client';\nimport type { Models } from '../models';\n\nimport { Protocol } from '../enums/protocol';\nimport { PunchoutVocabulariesGetName } from '../enums/punchout-vocabularies-get-name';\n\nexport class Punchout {\n client: Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {string} params.fallbackContactId - The accounts that sign an unnamed buyer in as this contact. Asked by customers before a contact is deleted for good: an account whose fallback is gone turns every buyer the ERP does not name away. Applied and echoed in `filter`; any account, enabled or not.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutAccountsList(params?: { limit?: number, offset?: number, order?: string, fallbackContactId?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @param {string} fallbackContactId - The accounts that sign an unnamed buyer in as this contact. Asked by customers before a contact is deleted for good: an account whose fallback is gone turns every buyer the ERP does not name away. Applied and echoed in `filter`; any account, enabled or not.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsList(limit?: number, offset?: number, order?: string, fallbackContactId?: string): Promise<{}>;\n punchoutAccountsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string, fallbackContactId?: string } | number,\n ...rest: [(number)?, (string)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string, fallbackContactId?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string, fallbackContactId?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string,\n fallbackContactId: rest[2] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n const fallbackContactId = params.fallbackContactId;\n\n\n const apiPath = '/v1/punchout/accounts';\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 fallbackContactId !== 'undefined') {\n apiPayload['fallback_contact_id'] = fallbackContactId;\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 *\n * @param {string} params.channelCode - \n * @param {string} params.code - \n * @param {string} params.name - \n * @param {string} params.protocol - \n * @param {string} params.authStrategy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} params.credentialDomain - \n * @param {string} params.credentialIdentity - \n * @param {string} params.credentialSecret - \n * @param {boolean} params.echoEntryParameters - OCI only: send the entry call's own query parameters back with the hand-back, for an SRM that expects them. Credential parameters are never sent back. Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} params.enabled - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} params.externalId - The key this punchout account has in the system that OWNS it. An account is a partner identity, and the procurement platform on the other side knows the relationship by an id of its own — a supplier id, a vendor number, an IDS customer name. Unique per tenant where it is set, so a repeated import updates the account it wrote last time instead of adding a second one. `code` is what this shop calls the partner; this is what the partner calls itself. Null for an account an operator typed in, which is the ordinary case.\n * @param {object} params.externalRefs - Every OTHER system that knows this partner, keyed by system name — the ERP's vendor number beside the procurement platform's supplier id, because one customer commonly reaches this shop through both. `external_id` is the leading system; this is the rest, and the next one costs no column. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document — look the account up by `external_id` and read this off the answer.\n * @param {string} params.fallbackContactId - \n * @param {string} params.idsCustomerName - \n * @param {string} params.loginToken - \n * @param {object} params.metadata - Free-form jsonb this tenant owns, and the extension point this entity has never had — anything about the partner relationship that this app does not model, up to the day it earns a column. Nothing here is read when a visit is served: the account's own columns are what the app acts on, `source_data` is what the source said, and this is what you say.\n * @param {string} params.organizationId - \n * @param {string} params.protocolVersion - The version of its protocol the account speaks — one of GET /punchout/vocabularies/protocol-versions for that protocol: OCI 4.0 or 5.0 (it decides which fields a hand-back carries), an IDS version this shop answers `SV` with. A cXML account states none; each cXML document carries its own. Any other value is refused. Omitted means the protocol's default.\n * @param {string} params.purchaseMode - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} params.secureOci - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {number} params.sessionTtlOverrideMinutes - How long a visit of this account stays open, overriding the tenant's `session_ttl_minutes` setting. Null — the ordinary case — means the tenant's lifetime.\n * @param {string} params.sharedSecret - \n * @param {object} params.sourceData - What the source said about this account, kept as it said it. Carries the ETag a write-back has to hand back in `If-Match`, and the source fields this app does not model — without it those are lost on the first edit made here. Not a place for anything the partner authenticates with: what an ERP sends to get in is written to the account's own write-only fields, which no route answers.\n * @param {string} params.sourceSyncedAt - When this account was last confirmed against its source. A delta run asks for changes since it, and an operator reads it to see that a feed has gone quiet. Editing the account here does not touch it: it says when the SOURCE was last seen, not when the row changed. Null for an account no source owns.\n * @param {string} params.startPageUrl - Where a buyer of THIS account lands after entry, overriding the tenant's `storefront_url` setting. Leave it empty: the entry URL is derived from the storefront address (`entry_url`), and an override is for a buyer who should land on a page of their own. Its host is the host the entry URL is derived from.\n * @param {string} params.unknownUserPolicy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n */\n punchoutAccountsCreate(params: { channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string }): Promise<Models.PunchoutAccount>;\n /**\n *\n * @param {string} channelCode - \n * @param {string} code - \n * @param {string} name - \n * @param {string} protocol - \n * @param {string} authStrategy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} credentialDomain - \n * @param {string} credentialIdentity - \n * @param {string} credentialSecret - \n * @param {boolean} echoEntryParameters - OCI only: send the entry call's own query parameters back with the hand-back, for an SRM that expects them. Credential parameters are never sent back. Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} enabled - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} externalId - The key this punchout account has in the system that OWNS it. An account is a partner identity, and the procurement platform on the other side knows the relationship by an id of its own — a supplier id, a vendor number, an IDS customer name. Unique per tenant where it is set, so a repeated import updates the account it wrote last time instead of adding a second one. `code` is what this shop calls the partner; this is what the partner calls itself. Null for an account an operator typed in, which is the ordinary case.\n * @param {object} externalRefs - Every OTHER system that knows this partner, keyed by system name — the ERP's vendor number beside the procurement platform's supplier id, because one customer commonly reaches this shop through both. `external_id` is the leading system; this is the rest, and the next one costs no column. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document — look the account up by `external_id` and read this off the answer.\n * @param {string} fallbackContactId - \n * @param {string} idsCustomerName - \n * @param {string} loginToken - \n * @param {object} metadata - Free-form jsonb this tenant owns, and the extension point this entity has never had — anything about the partner relationship that this app does not model, up to the day it earns a column. Nothing here is read when a visit is served: the account's own columns are what the app acts on, `source_data` is what the source said, and this is what you say.\n * @param {string} organizationId - \n * @param {string} protocolVersion - The version of its protocol the account speaks — one of GET /punchout/vocabularies/protocol-versions for that protocol: OCI 4.0 or 5.0 (it decides which fields a hand-back carries), an IDS version this shop answers `SV` with. A cXML account states none; each cXML document carries its own. Any other value is refused. Omitted means the protocol's default.\n * @param {string} purchaseMode - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} secureOci - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {number} sessionTtlOverrideMinutes - How long a visit of this account stays open, overriding the tenant's `session_ttl_minutes` setting. Null — the ordinary case — means the tenant's lifetime.\n * @param {string} sharedSecret - \n * @param {object} sourceData - What the source said about this account, kept as it said it. Carries the ETag a write-back has to hand back in `If-Match`, and the source fields this app does not model — without it those are lost on the first edit made here. Not a place for anything the partner authenticates with: what an ERP sends to get in is written to the account's own write-only fields, which no route answers.\n * @param {string} sourceSyncedAt - When this account was last confirmed against its source. A delta run asks for changes since it, and an operator reads it to see that a feed has gone quiet. Editing the account here does not touch it: it says when the SOURCE was last seen, not when the row changed. Null for an account no source owns.\n * @param {string} startPageUrl - Where a buyer of THIS account lands after entry, overriding the tenant's `storefront_url` setting. Leave it empty: the entry URL is derived from the storefront address (`entry_url`), and an override is for a buyer who should land on a page of their own. Its host is the host the entry URL is derived from.\n * @param {string} unknownUserPolicy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsCreate(channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string): Promise<Models.PunchoutAccount>;\n punchoutAccountsCreate(\n paramsOrFirst: { channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (boolean)?, (string)?, (object)?, (string)?, (string)?, (string)?, (object)?, (string)?, (string)?, (string)?, (boolean)?, (number)?, (string)?, (object)?, (string)?, (string)?, (string)?] \n ): Promise<Models.PunchoutAccount> {\n let params: { channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { channelCode: string, code: string, name: string, protocol: string, authStrategy?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, organizationId?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string };\n } else {\n params = {\n channelCode: paramsOrFirst as string,\n code: rest[0] as string,\n name: rest[1] as string,\n protocol: rest[2] as string,\n authStrategy: rest[3] as string,\n credentialDomain: rest[4] as string,\n credentialIdentity: rest[5] as string,\n credentialSecret: rest[6] as string,\n echoEntryParameters: rest[7] as boolean,\n enabled: rest[8] as boolean,\n externalId: rest[9] as string,\n externalRefs: rest[10] as object,\n fallbackContactId: rest[11] as string,\n idsCustomerName: rest[12] as string,\n loginToken: rest[13] as string,\n metadata: rest[14] as object,\n organizationId: rest[15] as string,\n protocolVersion: rest[16] as string,\n purchaseMode: rest[17] as string,\n secureOci: rest[18] as boolean,\n sessionTtlOverrideMinutes: rest[19] as number,\n sharedSecret: rest[20] as string,\n sourceData: rest[21] as object,\n sourceSyncedAt: rest[22] as string,\n startPageUrl: rest[23] as string,\n unknownUserPolicy: rest[24] as string \n };\n }\n \n const channelCode = params.channelCode;\n const code = params.code;\n const name = params.name;\n const protocol = params.protocol;\n const authStrategy = params.authStrategy;\n const credentialDomain = params.credentialDomain;\n const credentialIdentity = params.credentialIdentity;\n const credentialSecret = params.credentialSecret;\n const echoEntryParameters = params.echoEntryParameters;\n const enabled = params.enabled;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const fallbackContactId = params.fallbackContactId;\n const idsCustomerName = params.idsCustomerName;\n const loginToken = params.loginToken;\n const metadata = params.metadata;\n const organizationId = params.organizationId;\n const protocolVersion = params.protocolVersion;\n const purchaseMode = params.purchaseMode;\n const secureOci = params.secureOci;\n const sessionTtlOverrideMinutes = params.sessionTtlOverrideMinutes;\n const sharedSecret = params.sharedSecret;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const startPageUrl = params.startPageUrl;\n const unknownUserPolicy = params.unknownUserPolicy;\n\n if (typeof channelCode === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"channelCode\"');\n }\n if (typeof code === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"code\"');\n }\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof protocol === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"protocol\"');\n }\n\n const apiPath = '/v1/punchout/accounts';\n const apiPayload: Payload = {};\n if (typeof authStrategy !== 'undefined') {\n apiPayload['auth_strategy'] = authStrategy;\n }\n if (typeof channelCode !== 'undefined') {\n apiPayload['channel_code'] = channelCode;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof credentialDomain !== 'undefined') {\n apiPayload['credential_domain'] = credentialDomain;\n }\n if (typeof credentialIdentity !== 'undefined') {\n apiPayload['credential_identity'] = credentialIdentity;\n }\n if (typeof credentialSecret !== 'undefined') {\n apiPayload['credential_secret'] = credentialSecret;\n }\n if (typeof echoEntryParameters !== 'undefined') {\n apiPayload['echo_entry_parameters'] = echoEntryParameters;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof fallbackContactId !== 'undefined') {\n apiPayload['fallback_contact_id'] = fallbackContactId;\n }\n if (typeof idsCustomerName !== 'undefined') {\n apiPayload['ids_customer_name'] = idsCustomerName;\n }\n if (typeof loginToken !== 'undefined') {\n apiPayload['login_token'] = loginToken;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof protocolVersion !== 'undefined') {\n apiPayload['protocol_version'] = protocolVersion;\n }\n if (typeof purchaseMode !== 'undefined') {\n apiPayload['purchase_mode'] = purchaseMode;\n }\n if (typeof secureOci !== 'undefined') {\n apiPayload['secure_oci'] = secureOci;\n }\n if (typeof sessionTtlOverrideMinutes !== 'undefined') {\n apiPayload['session_ttl_override_minutes'] = sessionTtlOverrideMinutes;\n }\n if (typeof sharedSecret !== 'undefined') {\n apiPayload['shared_secret'] = sharedSecret;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof startPageUrl !== 'undefined') {\n apiPayload['start_page_url'] = startPageUrl;\n }\n if (typeof unknownUserPolicy !== 'undefined') {\n apiPayload['unknown_user_policy'] = unknownUserPolicy;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutAccountsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsDelete(id: string): Promise<{}>;\n punchoutAccountsDelete(\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/punchout/accounts/{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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n */\n punchoutAccountsGet(params: { id: string }): Promise<Models.PunchoutAccount>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsGet(id: string): Promise<Models.PunchoutAccount>;\n punchoutAccountsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutAccount> {\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/punchout/accounts/{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 *\n * @param {string} params.id - \n * @param {string} params.authStrategy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} params.channelCode - \n * @param {string} params.code - \n * @param {string} params.credentialDomain - \n * @param {string} params.credentialIdentity - \n * @param {string} params.credentialSecret - \n * @param {boolean} params.echoEntryParameters - OCI only: send the entry call's own query parameters back with the hand-back, for an SRM that expects them. Credential parameters are never sent back. Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} params.enabled - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} params.externalId - The key this punchout account has in the system that OWNS it. An account is a partner identity, and the procurement platform on the other side knows the relationship by an id of its own — a supplier id, a vendor number, an IDS customer name. Unique per tenant where it is set, so a repeated import updates the account it wrote last time instead of adding a second one. `code` is what this shop calls the partner; this is what the partner calls itself. Null for an account an operator typed in, which is the ordinary case.\n * @param {object} params.externalRefs - Every OTHER system that knows this partner, keyed by system name — the ERP's vendor number beside the procurement platform's supplier id, because one customer commonly reaches this shop through both. `external_id` is the leading system; this is the rest, and the next one costs no column. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document — look the account up by `external_id` and read this off the answer.\n * @param {string} params.fallbackContactId - \n * @param {string} params.idsCustomerName - \n * @param {string} params.loginToken - \n * @param {object} params.metadata - Free-form jsonb this tenant owns, and the extension point this entity has never had — anything about the partner relationship that this app does not model, up to the day it earns a column. Nothing here is read when a visit is served: the account's own columns are what the app acts on, `source_data` is what the source said, and this is what you say.\n * @param {string} params.name - \n * @param {string} params.organizationId - \n * @param {string} params.protocol - \n * @param {string} params.protocolVersion - The version of its protocol the account speaks — one of GET /punchout/vocabularies/protocol-versions for that protocol: OCI 4.0 or 5.0 (it decides which fields a hand-back carries), an IDS version this shop answers `SV` with. A cXML account states none; each cXML document carries its own. Any other value is refused. Omitted means the protocol's default.\n * @param {string} params.purchaseMode - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} params.secureOci - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {number} params.sessionTtlOverrideMinutes - How long a visit of this account stays open, overriding the tenant's `session_ttl_minutes` setting. Null — the ordinary case — means the tenant's lifetime.\n * @param {string} params.sharedSecret - \n * @param {object} params.sourceData - What the source said about this account, kept as it said it. Carries the ETag a write-back has to hand back in `If-Match`, and the source fields this app does not model — without it those are lost on the first edit made here. Not a place for anything the partner authenticates with: what an ERP sends to get in is written to the account's own write-only fields, which no route answers.\n * @param {string} params.sourceSyncedAt - When this account was last confirmed against its source. A delta run asks for changes since it, and an operator reads it to see that a feed has gone quiet. Editing the account here does not touch it: it says when the SOURCE was last seen, not when the row changed. Null for an account no source owns.\n * @param {string} params.startPageUrl - Where a buyer of THIS account lands after entry, overriding the tenant's `storefront_url` setting. Leave it empty: the entry URL is derived from the storefront address (`entry_url`), and an override is for a buyer who should land on a page of their own. Its host is the host the entry URL is derived from.\n * @param {string} params.unknownUserPolicy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n */\n punchoutAccountsUpdate(params: { id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string }): Promise<Models.PunchoutAccount>;\n /**\n *\n * @param {string} id - \n * @param {string} authStrategy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} channelCode - \n * @param {string} code - \n * @param {string} credentialDomain - \n * @param {string} credentialIdentity - \n * @param {string} credentialSecret - \n * @param {boolean} echoEntryParameters - OCI only: send the entry call's own query parameters back with the hand-back, for an SRM that expects them. Credential parameters are never sent back. Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} enabled - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {string} externalId - The key this punchout account has in the system that OWNS it. An account is a partner identity, and the procurement platform on the other side knows the relationship by an id of its own — a supplier id, a vendor number, an IDS customer name. Unique per tenant where it is set, so a repeated import updates the account it wrote last time instead of adding a second one. `code` is what this shop calls the partner; this is what the partner calls itself. Null for an account an operator typed in, which is the ordinary case.\n * @param {object} externalRefs - Every OTHER system that knows this partner, keyed by system name — the ERP's vendor number beside the procurement platform's supplier id, because one customer commonly reaches this shop through both. `external_id` is the leading system; this is the rest, and the next one costs no column. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document — look the account up by `external_id` and read this off the answer.\n * @param {string} fallbackContactId - \n * @param {string} idsCustomerName - \n * @param {string} loginToken - \n * @param {object} metadata - Free-form jsonb this tenant owns, and the extension point this entity has never had — anything about the partner relationship that this app does not model, up to the day it earns a column. Nothing here is read when a visit is served: the account's own columns are what the app acts on, `source_data` is what the source said, and this is what you say.\n * @param {string} name - \n * @param {string} organizationId - \n * @param {string} protocol - \n * @param {string} protocolVersion - The version of its protocol the account speaks — one of GET /punchout/vocabularies/protocol-versions for that protocol: OCI 4.0 or 5.0 (it decides which fields a hand-back carries), an IDS version this shop answers `SV` with. A cXML account states none; each cXML document carries its own. Any other value is refused. Omitted means the protocol's default.\n * @param {string} purchaseMode - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {boolean} secureOci - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @param {number} sessionTtlOverrideMinutes - How long a visit of this account stays open, overriding the tenant's `session_ttl_minutes` setting. Null — the ordinary case — means the tenant's lifetime.\n * @param {string} sharedSecret - \n * @param {object} sourceData - What the source said about this account, kept as it said it. Carries the ETag a write-back has to hand back in `If-Match`, and the source fields this app does not model — without it those are lost on the first edit made here. Not a place for anything the partner authenticates with: what an ERP sends to get in is written to the account's own write-only fields, which no route answers.\n * @param {string} sourceSyncedAt - When this account was last confirmed against its source. A delta run asks for changes since it, and an operator reads it to see that a feed has gone quiet. Editing the account here does not touch it: it says when the SOURCE was last seen, not when the row changed. Null for an account no source owns.\n * @param {string} startPageUrl - Where a buyer of THIS account lands after entry, overriding the tenant's `storefront_url` setting. Leave it empty: the entry URL is derived from the storefront address (`entry_url`), and an override is for a buyer who should land on a page of their own. Its host is the host the entry URL is derived from.\n * @param {string} unknownUserPolicy - Null is ignored: a new account takes the default, a corrected one keeps its value.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutAccount>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsUpdate(id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string): Promise<Models.PunchoutAccount>;\n punchoutAccountsUpdate(\n paramsOrFirst: { id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (boolean)?, (string)?, (object)?, (string)?, (string)?, (string)?, (object)?, (string)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (number)?, (string)?, (object)?, (string)?, (string)?, (string)?] \n ): Promise<Models.PunchoutAccount> {\n let params: { id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, authStrategy?: string, channelCode?: string, code?: string, credentialDomain?: string, credentialIdentity?: string, credentialSecret?: string, echoEntryParameters?: boolean, enabled?: boolean, externalId?: string, externalRefs?: object, fallbackContactId?: string, idsCustomerName?: string, loginToken?: string, metadata?: object, name?: string, organizationId?: string, protocol?: string, protocolVersion?: string, purchaseMode?: string, secureOci?: boolean, sessionTtlOverrideMinutes?: number, sharedSecret?: string, sourceData?: object, sourceSyncedAt?: string, startPageUrl?: string, unknownUserPolicy?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n authStrategy: rest[0] as string,\n channelCode: rest[1] as string,\n code: rest[2] as string,\n credentialDomain: rest[3] as string,\n credentialIdentity: rest[4] as string,\n credentialSecret: rest[5] as string,\n echoEntryParameters: rest[6] as boolean,\n enabled: rest[7] as boolean,\n externalId: rest[8] as string,\n externalRefs: rest[9] as object,\n fallbackContactId: rest[10] as string,\n idsCustomerName: rest[11] as string,\n loginToken: rest[12] as string,\n metadata: rest[13] as object,\n name: rest[14] as string,\n organizationId: rest[15] as string,\n protocol: rest[16] as string,\n protocolVersion: rest[17] as string,\n purchaseMode: rest[18] as string,\n secureOci: rest[19] as boolean,\n sessionTtlOverrideMinutes: rest[20] as number,\n sharedSecret: rest[21] as string,\n sourceData: rest[22] as object,\n sourceSyncedAt: rest[23] as string,\n startPageUrl: rest[24] as string,\n unknownUserPolicy: rest[25] as string \n };\n }\n \n const id = params.id;\n const authStrategy = params.authStrategy;\n const channelCode = params.channelCode;\n const code = params.code;\n const credentialDomain = params.credentialDomain;\n const credentialIdentity = params.credentialIdentity;\n const credentialSecret = params.credentialSecret;\n const echoEntryParameters = params.echoEntryParameters;\n const enabled = params.enabled;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const fallbackContactId = params.fallbackContactId;\n const idsCustomerName = params.idsCustomerName;\n const loginToken = params.loginToken;\n const metadata = params.metadata;\n const name = params.name;\n const organizationId = params.organizationId;\n const protocol = params.protocol;\n const protocolVersion = params.protocolVersion;\n const purchaseMode = params.purchaseMode;\n const secureOci = params.secureOci;\n const sessionTtlOverrideMinutes = params.sessionTtlOverrideMinutes;\n const sharedSecret = params.sharedSecret;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const startPageUrl = params.startPageUrl;\n const unknownUserPolicy = params.unknownUserPolicy;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/punchout/accounts/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof authStrategy !== 'undefined') {\n apiPayload['auth_strategy'] = authStrategy;\n }\n if (typeof channelCode !== 'undefined') {\n apiPayload['channel_code'] = channelCode;\n }\n if (typeof code !== 'undefined') {\n apiPayload['code'] = code;\n }\n if (typeof credentialDomain !== 'undefined') {\n apiPayload['credential_domain'] = credentialDomain;\n }\n if (typeof credentialIdentity !== 'undefined') {\n apiPayload['credential_identity'] = credentialIdentity;\n }\n if (typeof credentialSecret !== 'undefined') {\n apiPayload['credential_secret'] = credentialSecret;\n }\n if (typeof echoEntryParameters !== 'undefined') {\n apiPayload['echo_entry_parameters'] = echoEntryParameters;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof fallbackContactId !== 'undefined') {\n apiPayload['fallback_contact_id'] = fallbackContactId;\n }\n if (typeof idsCustomerName !== 'undefined') {\n apiPayload['ids_customer_name'] = idsCustomerName;\n }\n if (typeof loginToken !== 'undefined') {\n apiPayload['login_token'] = loginToken;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof protocolVersion !== 'undefined') {\n apiPayload['protocol_version'] = protocolVersion;\n }\n if (typeof purchaseMode !== 'undefined') {\n apiPayload['purchase_mode'] = purchaseMode;\n }\n if (typeof secureOci !== 'undefined') {\n apiPayload['secure_oci'] = secureOci;\n }\n if (typeof sessionTtlOverrideMinutes !== 'undefined') {\n apiPayload['session_ttl_override_minutes'] = sessionTtlOverrideMinutes;\n }\n if (typeof sharedSecret !== 'undefined') {\n apiPayload['shared_secret'] = sharedSecret;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof startPageUrl !== 'undefined') {\n apiPayload['start_page_url'] = startPageUrl;\n }\n if (typeof unknownUserPolicy !== 'undefined') {\n apiPayload['unknown_user_policy'] = unknownUserPolicy;\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 * What a buyer's system would receive, before a buyer is in the shop: the account's mappings run over a cart that exists, through the same production code a real hand-back runs, and the field set or the document that comes out. Writes nothing — no visit, no transfer, no correlation key kept — and posts nothing. `mapping` says which mappings produced nothing and why, because a field the document deliberately leaves out reads exactly like one whose source resolved to nothing and only one of the two is a fault.\n *\n * @param {string} params.id - \n * @param {string} params.cartId - The cart to produce the payload for — already priced, the way a hand-back reads one.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutReturnPreview>}\n */\n punchoutAccountsPreview(params: { id: string, cartId: string }): Promise<Models.PunchoutReturnPreview>;\n /**\n * What a buyer's system would receive, before a buyer is in the shop: the account's mappings run over a cart that exists, through the same production code a real hand-back runs, and the field set or the document that comes out. Writes nothing — no visit, no transfer, no correlation key kept — and posts nothing. `mapping` says which mappings produced nothing and why, because a field the document deliberately leaves out reads exactly like one whose source resolved to nothing and only one of the two is a fault.\n *\n * @param {string} id - \n * @param {string} cartId - The cart to produce the payload for — already priced, the way a hand-back reads one.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutReturnPreview>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsPreview(id: string, cartId: string): Promise<Models.PunchoutReturnPreview>;\n punchoutAccountsPreview(\n paramsOrFirst: { id: string, cartId: string } | string,\n ...rest: [(string)?] \n ): Promise<Models.PunchoutReturnPreview> {\n let params: { id: string, cartId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, cartId: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n cartId: rest[0] as string \n };\n }\n \n const id = params.id;\n const cartId = params.cartId;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof cartId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"cartId\"');\n }\n\n const apiPath = '/v1/punchout/accounts/{id}/preview'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\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 * Punchout entry is served on the tenant's own storefront host and never by this app (adr/ADR-0002), so whether an account is reachable is a fact about somebody else's runtime — a per-DOMAIN fact, which no install-time check can see. The probe calls the account's own public entry address, carrying a single-use token this app's entry route echoes back, and records what it found: reachable, not_found, not_entry, wrong_host, tls, timeout, unreachable, unconfigured. Only the echo counts as reachable — a storefront that answers 200 with its own page for every unknown path is exactly the setup this exists to catch. The outcome, the address it was taken on and what came back are answered and kept on the account. Changing the entry URL retires the finding.\n *\n * @param {string} params.id - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryProbeResult>}\n */\n punchoutAccountsProbe(params: { id: string, data: object }): Promise<Models.PunchoutEntryProbeResult>;\n /**\n * Punchout entry is served on the tenant's own storefront host and never by this app (adr/ADR-0002), so whether an account is reachable is a fact about somebody else's runtime — a per-DOMAIN fact, which no install-time check can see. The probe calls the account's own public entry address, carrying a single-use token this app's entry route echoes back, and records what it found: reachable, not_found, not_entry, wrong_host, tls, timeout, unreachable, unconfigured. Only the echo counts as reachable — a storefront that answers 200 with its own page for every unknown path is exactly the setup this exists to catch. The outcome, the address it was taken on and what came back are answered and kept on the account. Changing the entry URL retires the finding.\n *\n * @param {string} id - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryProbeResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsProbe(id: string, data: object): Promise<Models.PunchoutEntryProbeResult>;\n punchoutAccountsProbe(\n paramsOrFirst: { id: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutEntryProbeResult> {\n let params: { id: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, data: object };\n } else {\n params = {\n id: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const id = params.id;\n const data = params.data;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/accounts/{id}/probe'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 operator's way to tell \"the ERP is configured wrong\" from \"we are broken\", with no procurement system in the loop. Builds the entry call this account would receive — its own credentials, in the transport its standard uses — hands it to the same adapter an ERP reaches, and answers the status, the headers and the body the storefront would have written out, rather than a summary of them. It leaves nothing that acts: an entry call opens a visit, so the visit it opened is marked as the tester's and revoked before the answer goes back, its refusals do not count against the credential throttle, and it sends no action that imports a cart. It creates no cart and records no transfer.\n *\n * @param {string} params.id - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryTestResult>}\n */\n punchoutAccountsTest(params: { id: string, data: object }): Promise<Models.PunchoutEntryTestResult>;\n /**\n * The operator's way to tell \"the ERP is configured wrong\" from \"we are broken\", with no procurement system in the loop. Builds the entry call this account would receive — its own credentials, in the transport its standard uses — hands it to the same adapter an ERP reaches, and answers the status, the headers and the body the storefront would have written out, rather than a summary of them. It leaves nothing that acts: an entry call opens a visit, so the visit it opened is marked as the tester's and revoked before the answer goes back, its refusals do not count against the credential throttle, and it sends no action that imports a cart. It creates no cart and records no transfer.\n *\n * @param {string} id - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryTestResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutAccountsTest(id: string, data: object): Promise<Models.PunchoutEntryTestResult>;\n punchoutAccountsTest(\n paramsOrFirst: { id: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutEntryTestResult> {\n let params: { id: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, data: object };\n } else {\n params = {\n id: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const id = params.id;\n const data = params.data;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/accounts/{id}/test'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 *\n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutDefaultsResult>}\n */\n punchoutDefaults(params: { data: object }): Promise<Models.PunchoutDefaultsResult>;\n /**\n *\n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutDefaultsResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutDefaults(data: object): Promise<Models.PunchoutDefaultsResult>;\n punchoutDefaults(\n paramsOrFirst: { data: object } | object \n ): Promise<Models.PunchoutDefaultsResult> {\n let params: { data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('data' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { data: object };\n } else {\n params = {\n data: paramsOrFirst as object \n };\n }\n \n const data = params.data;\n\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/defaults';\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutEntryRefusalsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutEntryRefusalsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutEntryRefusalsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/entry-refusals';\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 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 * cXML PunchOutSetupRequest for the account named in the path. The answer must be the PunchOutSetupResponse itself, in the same HTTP response — which is the whole reason ADR-0002 exists. What authenticates is Sender/Credential, not From: in the usual shape a network hub has already verified the buyer and presents its OWN credential (§5.3.2.2). Direct PunchOut (§5.7) authenticates by MAC or client certificate and is not supported. A requisition is reopened with operation — create, edit and inspect are served, with the ERP sending the lines back in the request and inspect recorded as view-only; source is not. Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} params.accountCode - \n * @param {string} params.method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} params.bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} params.clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} params.contentType - The body content type as sent.\n * @param {object} params.headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} params.query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n */\n punchoutEntryCxml(params: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object }): Promise<Models.PunchoutEntryResponse>;\n /**\n * cXML PunchOutSetupRequest for the account named in the path. The answer must be the PunchOutSetupResponse itself, in the same HTTP response — which is the whole reason ADR-0002 exists. What authenticates is Sender/Credential, not From: in the usual shape a network hub has already verified the buyer and presents its OWN credential (§5.3.2.2). Direct PunchOut (§5.7) authenticates by MAC or client certificate and is not supported. A requisition is reopened with operation — create, edit and inspect are served, with the ERP sending the lines back in the request and inspect recorded as view-only; source is not. Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} accountCode - \n * @param {string} method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} contentType - The body content type as sent.\n * @param {object} headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutEntryCxml(accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object): Promise<Models.PunchoutEntryResponse>;\n punchoutEntryCxml(\n paramsOrFirst: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (object)?, (object)?] \n ): Promise<Models.PunchoutEntryResponse> {\n let params: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n } else {\n params = {\n accountCode: paramsOrFirst as string,\n method: rest[0] as string,\n bodyB64: rest[1] as string,\n clientIp: rest[2] as string,\n contentType: rest[3] as string,\n headers: rest[4] as object,\n query: rest[5] as object \n };\n }\n \n const accountCode = params.accountCode;\n const method = params.method;\n const bodyB64 = params.bodyB64;\n const clientIp = params.clientIp;\n const contentType = params.contentType;\n const headers = params.headers;\n const query = params.query;\n\n if (typeof accountCode === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountCode\"');\n }\n if (typeof method === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"method\"');\n }\n\n const apiPath = '/v1/punchout/entry/cxml/{account_code}'.replace('{account_code}', accountCode);\n const apiPayload: Payload = {};\n if (typeof bodyB64 !== 'undefined') {\n apiPayload['body_b64'] = bodyB64;\n }\n if (typeof clientIp !== 'undefined') {\n apiPayload['client_ip'] = clientIp;\n }\n if (typeof contentType !== 'undefined') {\n apiPayload['content_type'] = contentType;\n }\n if (typeof headers !== 'undefined') {\n apiPayload['headers'] = headers;\n }\n if (typeof method !== 'undefined') {\n apiPayload['method'] = method;\n }\n if (typeof query !== 'undefined') {\n apiPayload['query'] = query;\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 * IDS entry on one shared endpoint: the account is resolved from name_kunde in the body and authenticated with pw_kunde, plus kndnr where the tenant requires it or the call sends it — what LI answers is what is enforced. POST-only with multipart/form-data — the standard rules GET out because a cart does not fit in a query string (§5.1a) — and parameter names are lower-case single words. WKE (shop), ADL (one article), AS (a search) and WKS (a cart sent in, which always becomes a NEW cart) authenticate; LI and SV are answered BEFORE authentication, because the standard sends only the action code with them and they are what makes setup self-service. HLS, the heating-label list, is refused as not implemented rather than falling through to \"come in and shop\". Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} params.method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} params.bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} params.clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} params.contentType - The body content type as sent.\n * @param {object} params.headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} params.query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n */\n punchoutEntryIds(params: { method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object }): Promise<Models.PunchoutEntryResponse>;\n /**\n * IDS entry on one shared endpoint: the account is resolved from name_kunde in the body and authenticated with pw_kunde, plus kndnr where the tenant requires it or the call sends it — what LI answers is what is enforced. POST-only with multipart/form-data — the standard rules GET out because a cart does not fit in a query string (§5.1a) — and parameter names are lower-case single words. WKE (shop), ADL (one article), AS (a search) and WKS (a cart sent in, which always becomes a NEW cart) authenticate; LI and SV are answered BEFORE authentication, because the standard sends only the action code with them and they are what makes setup self-service. HLS, the heating-label list, is refused as not implemented rather than falling through to \"come in and shop\". Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} contentType - The body content type as sent.\n * @param {object} headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutEntryIds(method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object): Promise<Models.PunchoutEntryResponse>;\n punchoutEntryIds(\n paramsOrFirst: { method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object } | string,\n ...rest: [(string)?, (string)?, (string)?, (object)?, (object)?] \n ): Promise<Models.PunchoutEntryResponse> {\n let params: { method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n } else {\n params = {\n method: paramsOrFirst as string,\n bodyB64: rest[0] as string,\n clientIp: rest[1] as string,\n contentType: rest[2] as string,\n headers: rest[3] as object,\n query: rest[4] as object \n };\n }\n \n const method = params.method;\n const bodyB64 = params.bodyB64;\n const clientIp = params.clientIp;\n const contentType = params.contentType;\n const headers = params.headers;\n const query = params.query;\n\n if (typeof method === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"method\"');\n }\n\n const apiPath = '/v1/punchout/entry/ids';\n const apiPayload: Payload = {};\n if (typeof bodyB64 !== 'undefined') {\n apiPayload['body_b64'] = bodyB64;\n }\n if (typeof clientIp !== 'undefined') {\n apiPayload['client_ip'] = clientIp;\n }\n if (typeof contentType !== 'undefined') {\n apiPayload['content_type'] = contentType;\n }\n if (typeof headers !== 'undefined') {\n apiPayload['headers'] = headers;\n }\n if (typeof method !== 'undefined') {\n apiPayload['method'] = method;\n }\n if (typeof query !== 'undefined') {\n apiPayload['query'] = query;\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 * OCI entry for the account named in the path — V8's externalIdentifier, so an existing ERP configuration migrates unchanged. Answers a 302 to the account's start page carrying the session handle, and nothing else: no credential and no sign-in secret ride in a redirect. FUNCTION is a closed upper-case set and only its ABSENCE means \"let the buyer shop\"; the Level 2 functions (DETAIL, VALIDATE, SOURCING, BACKGROUND_SEARCH, DOWNLOADJSON, DETAILADD, QUANTITYCHECK) answer 501 naming the one asked for, and an undefined one a 400 — neither counts against the credential throttle. This address also carries Secure OCI's two backend legs, INITIALIZE and RETRIEVEOCI, where the cart is FETCHED rather than posted. Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} params.accountCode - \n * @param {string} params.method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} params.bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} params.clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} params.contentType - The body content type as sent.\n * @param {object} params.headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} params.query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n */\n punchoutEntryOci(params: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object }): Promise<Models.PunchoutEntryResponse>;\n /**\n * OCI entry for the account named in the path — V8's externalIdentifier, so an existing ERP configuration migrates unchanged. Answers a 302 to the account's start page carrying the session handle, and nothing else: no credential and no sign-in secret ride in a redirect. FUNCTION is a closed upper-case set and only its ABSENCE means \"let the buyer shop\"; the Level 2 functions (DETAIL, VALIDATE, SOURCING, BACKGROUND_SEARCH, DOWNLOADJSON, DETAILADD, QUANTITYCHECK) answer 501 naming the one asked for, and an undefined one a 400 — neither counts against the credential throttle. This address also carries Secure OCI's two backend legs, INITIALIZE and RETRIEVEOCI, where the cart is FETCHED rather than posted. Reached from the tenant's storefront host, never from this app's own URL and never as a public gateway route — see adr/ADR-0002. The storefront pass-through forwards the ERP's request as the envelope above and returns this answer unchanged.\n *\n * @param {string} accountCode - \n * @param {string} method - The method the external system used ('GET' for a typical OCI entry, 'POST' for cXML/IDS).\n * @param {string} bodyB64 - The raw request body, base64-encoded. Base64 because a cXML or IDS document must survive byte-for-byte — re-serialising it breaks signatures and encodings.\n * @param {string} clientIp - The external system's IP, for the session record and rate accounting.\n * @param {string} contentType - The body content type as sent.\n * @param {object} headers - Request headers as sent, minus hop-by-hop and storefront session headers.\n * @param {object} query - Query parameters as sent — OCI carries USERNAME/PASSWORD/HOOK_URL here.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutEntryResponse>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutEntryOci(accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object): Promise<Models.PunchoutEntryResponse>;\n punchoutEntryOci(\n paramsOrFirst: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (object)?, (object)?] \n ): Promise<Models.PunchoutEntryResponse> {\n let params: { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountCode: string, method: string, bodyB64?: string, clientIp?: string, contentType?: string, headers?: object, query?: object };\n } else {\n params = {\n accountCode: paramsOrFirst as string,\n method: rest[0] as string,\n bodyB64: rest[1] as string,\n clientIp: rest[2] as string,\n contentType: rest[3] as string,\n headers: rest[4] as object,\n query: rest[5] as object \n };\n }\n \n const accountCode = params.accountCode;\n const method = params.method;\n const bodyB64 = params.bodyB64;\n const clientIp = params.clientIp;\n const contentType = params.contentType;\n const headers = params.headers;\n const query = params.query;\n\n if (typeof accountCode === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountCode\"');\n }\n if (typeof method === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"method\"');\n }\n\n const apiPath = '/v1/punchout/entry/oci/{account_code}'.replace('{account_code}', accountCode);\n const apiPayload: Payload = {};\n if (typeof bodyB64 !== 'undefined') {\n apiPayload['body_b64'] = bodyB64;\n }\n if (typeof clientIp !== 'undefined') {\n apiPayload['client_ip'] = clientIp;\n }\n if (typeof contentType !== 'undefined') {\n apiPayload['content_type'] = contentType;\n }\n if (typeof headers !== 'undefined') {\n apiPayload['headers'] = headers;\n }\n if (typeof method !== 'undefined') {\n apiPayload['method'] = method;\n }\n if (typeof query !== 'undefined') {\n apiPayload['query'] = query;\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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutFieldMappingsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutFieldMappingsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/field-mappings';\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 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 *\n * @param {string} params.protocol - \n * @param {string} params.source - \n * @param {string} params.target - \n * @param {string} params.targetKind - \n * @param {string} params.accountId - \n * @param {string} params.document - \n * @param {string} params.emit - \n * @param {boolean} params.enabled - \n * @param {object} params.mutators - \n * @param {number} params.position - \n * @param {string} params.scope - \n * @param {object} params.sourceConfig - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n */\n punchoutFieldMappingsCreate(params: { protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object }): Promise<Models.PunchoutFieldMapping>;\n /**\n *\n * @param {string} protocol - \n * @param {string} source - \n * @param {string} target - \n * @param {string} targetKind - \n * @param {string} accountId - \n * @param {string} document - \n * @param {string} emit - \n * @param {boolean} enabled - \n * @param {object} mutators - \n * @param {number} position - \n * @param {string} scope - \n * @param {object} sourceConfig - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsCreate(protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object): Promise<Models.PunchoutFieldMapping>;\n punchoutFieldMappingsCreate(\n paramsOrFirst: { protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (boolean)?, (object)?, (number)?, (string)?, (object)?] \n ): Promise<Models.PunchoutFieldMapping> {\n let params: { protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { protocol: string, source: string, target: string, targetKind: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, scope?: string, sourceConfig?: object };\n } else {\n params = {\n protocol: paramsOrFirst as string,\n source: rest[0] as string,\n target: rest[1] as string,\n targetKind: rest[2] as string,\n accountId: rest[3] as string,\n document: rest[4] as string,\n emit: rest[5] as string,\n enabled: rest[6] as boolean,\n mutators: rest[7] as object,\n position: rest[8] as number,\n scope: rest[9] as string,\n sourceConfig: rest[10] as object \n };\n }\n \n const protocol = params.protocol;\n const source = params.source;\n const target = params.target;\n const targetKind = params.targetKind;\n const accountId = params.accountId;\n const document = params.document;\n const emit = params.emit;\n const enabled = params.enabled;\n const mutators = params.mutators;\n const position = params.position;\n const scope = params.scope;\n const sourceConfig = params.sourceConfig;\n\n if (typeof protocol === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"protocol\"');\n }\n if (typeof source === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"source\"');\n }\n if (typeof target === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"target\"');\n }\n if (typeof targetKind === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"targetKind\"');\n }\n\n const apiPath = '/v1/punchout/field-mappings';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof document !== 'undefined') {\n apiPayload['document'] = document;\n }\n if (typeof emit !== 'undefined') {\n apiPayload['emit'] = emit;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof mutators !== 'undefined') {\n apiPayload['mutators'] = mutators;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof scope !== 'undefined') {\n apiPayload['scope'] = scope;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n if (typeof sourceConfig !== 'undefined') {\n apiPayload['source_config'] = sourceConfig;\n }\n if (typeof target !== 'undefined') {\n apiPayload['target'] = target;\n }\n if (typeof targetKind !== 'undefined') {\n apiPayload['target_kind'] = targetKind;\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 inverse of the import, and what makes a configuration reviewable and restorable outside the editor — and diffable against the installation it came from. Not a perfect inverse, and it says so: a mapping whose source the old platform has no driver for is left out and named in `dropped`.\n *\n * @param {string} params.accountId - The account whose mappings are written out.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMappingExportResult>}\n */\n punchoutFieldMappingsExport(params: { accountId: string }): Promise<Models.PunchoutFieldMappingExportResult>;\n /**\n * The inverse of the import, and what makes a configuration reviewable and restorable outside the editor — and diffable against the installation it came from. Not a perfect inverse, and it says so: a mapping whose source the old platform has no driver for is left out and named in `dropped`.\n *\n * @param {string} accountId - The account whose mappings are written out.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMappingExportResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsExport(accountId: string): Promise<Models.PunchoutFieldMappingExportResult>;\n punchoutFieldMappingsExport(\n paramsOrFirst: { accountId: string } | string \n ): Promise<Models.PunchoutFieldMappingExportResult> {\n let params: { accountId: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountId: string };\n } else {\n params = {\n accountId: paramsOrFirst as string \n };\n }\n \n const accountId = params.accountId;\n\n if (typeof accountId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountId\"');\n }\n\n const apiPath = '/v1/punchout/field-mappings/export';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\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 * Takes a V8 `field_mapping` — the whole column, one protocol's sub-object, or what V8's own export action writes — and records it as mappings for one account. Idempotent on the record's own key (protocol, document, scope, target): re-importing a corrected configuration corrects the rows rather than adding beside them, which is what makes a migration rehearsable. A rule this vocabulary cannot express is NEVER stored and comes back in `refused` with the target it filled, the type it named and why; `skipped` names a group the old platform itself never read.\n *\n * @param {string} params.accountId - The account the configuration belongs to.\n * @param {object} params.configuration - The configuration as the old platform stored it.\n * @param {Protocol} params.protocol - Optional, and only as a check: it has to be the protocol the account speaks. IDS has no configuration to carry over — the old platform held its document in code.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMappingImportResult>}\n */\n punchoutFieldMappingsImport(params: { accountId: string, configuration: object, protocol?: Protocol }): Promise<Models.PunchoutFieldMappingImportResult>;\n /**\n * Takes a V8 `field_mapping` — the whole column, one protocol's sub-object, or what V8's own export action writes — and records it as mappings for one account. Idempotent on the record's own key (protocol, document, scope, target): re-importing a corrected configuration corrects the rows rather than adding beside them, which is what makes a migration rehearsable. A rule this vocabulary cannot express is NEVER stored and comes back in `refused` with the target it filled, the type it named and why; `skipped` names a group the old platform itself never read.\n *\n * @param {string} accountId - The account the configuration belongs to.\n * @param {object} configuration - The configuration as the old platform stored it.\n * @param {Protocol} protocol - Optional, and only as a check: it has to be the protocol the account speaks. IDS has no configuration to carry over — the old platform held its document in code.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMappingImportResult>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsImport(accountId: string, configuration: object, protocol?: Protocol): Promise<Models.PunchoutFieldMappingImportResult>;\n punchoutFieldMappingsImport(\n paramsOrFirst: { accountId: string, configuration: object, protocol?: Protocol } | string,\n ...rest: [(object)?, (Protocol)?] \n ): Promise<Models.PunchoutFieldMappingImportResult> {\n let params: { accountId: string, configuration: object, protocol?: Protocol };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountId: string, configuration: object, protocol?: Protocol };\n } else {\n params = {\n accountId: paramsOrFirst as string,\n configuration: rest[0] as object,\n protocol: rest[1] as Protocol \n };\n }\n \n const accountId = params.accountId;\n const configuration = params.configuration;\n const protocol = params.protocol;\n\n if (typeof accountId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountId\"');\n }\n if (typeof configuration === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"configuration\"');\n }\n\n const apiPath = '/v1/punchout/field-mappings/import';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof configuration !== 'undefined') {\n apiPayload['configuration'] = configuration;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutFieldMappingsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsDelete(id: string): Promise<{}>;\n punchoutFieldMappingsDelete(\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/punchout/field-mappings/{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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n */\n punchoutFieldMappingsGet(params: { id: string }): Promise<Models.PunchoutFieldMapping>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsGet(id: string): Promise<Models.PunchoutFieldMapping>;\n punchoutFieldMappingsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutFieldMapping> {\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/punchout/field-mappings/{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 *\n * @param {string} params.id - \n * @param {string} params.accountId - \n * @param {string} params.document - \n * @param {string} params.emit - \n * @param {boolean} params.enabled - \n * @param {object} params.mutators - \n * @param {number} params.position - \n * @param {string} params.protocol - \n * @param {string} params.scope - \n * @param {string} params.source - \n * @param {object} params.sourceConfig - \n * @param {string} params.target - \n * @param {string} params.targetKind - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n */\n punchoutFieldMappingsUpdate(params: { id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string }): Promise<Models.PunchoutFieldMapping>;\n /**\n *\n * @param {string} id - \n * @param {string} accountId - \n * @param {string} document - \n * @param {string} emit - \n * @param {boolean} enabled - \n * @param {object} mutators - \n * @param {number} position - \n * @param {string} protocol - \n * @param {string} scope - \n * @param {string} source - \n * @param {object} sourceConfig - \n * @param {string} target - \n * @param {string} targetKind - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutFieldMapping>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutFieldMappingsUpdate(id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string): Promise<Models.PunchoutFieldMapping>;\n punchoutFieldMappingsUpdate(\n paramsOrFirst: { id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (boolean)?, (object)?, (number)?, (string)?, (string)?, (string)?, (object)?, (string)?, (string)?] \n ): Promise<Models.PunchoutFieldMapping> {\n let params: { id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, accountId?: string, document?: string, emit?: string, enabled?: boolean, mutators?: object, position?: number, protocol?: string, scope?: string, source?: string, sourceConfig?: object, target?: string, targetKind?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n accountId: rest[0] as string,\n document: rest[1] as string,\n emit: rest[2] as string,\n enabled: rest[3] as boolean,\n mutators: rest[4] as object,\n position: rest[5] as number,\n protocol: rest[6] as string,\n scope: rest[7] as string,\n source: rest[8] as string,\n sourceConfig: rest[9] as object,\n target: rest[10] as string,\n targetKind: rest[11] as string \n };\n }\n \n const id = params.id;\n const accountId = params.accountId;\n const document = params.document;\n const emit = params.emit;\n const enabled = params.enabled;\n const mutators = params.mutators;\n const position = params.position;\n const protocol = params.protocol;\n const scope = params.scope;\n const source = params.source;\n const sourceConfig = params.sourceConfig;\n const target = params.target;\n const targetKind = params.targetKind;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/punchout/field-mappings/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof document !== 'undefined') {\n apiPayload['document'] = document;\n }\n if (typeof emit !== 'undefined') {\n apiPayload['emit'] = emit;\n }\n if (typeof enabled !== 'undefined') {\n apiPayload['enabled'] = enabled;\n }\n if (typeof mutators !== 'undefined') {\n apiPayload['mutators'] = mutators;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof scope !== 'undefined') {\n apiPayload['scope'] = scope;\n }\n if (typeof source !== 'undefined') {\n apiPayload['source'] = source;\n }\n if (typeof sourceConfig !== 'undefined') {\n apiPayload['source_config'] = sourceConfig;\n }\n if (typeof target !== 'undefined') {\n apiPayload['target'] = target;\n }\n if (typeof targetKind !== 'undefined') {\n apiPayload['target_kind'] = targetKind;\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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutSessionsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutSessionsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/sessions';\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 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 *\n * @param {string} params.accountId - \n * @param {string} params.channelCode - \n * @param {string} params.expiresAt - \n * @param {string} params.protocol - \n * @param {string} params.psid - \n * @param {string} params.cartId - \n * @param {string} params.claimedAt - \n * @param {string} params.closedReason - \n * @param {string} params.contactId - \n * @param {string} params.correlationKey - \n * @param {string} params.entryAction - \n * @param {object} params.entryIntent - \n * @param {object} params.entryPayload - \n * @param {string} params.externalUserId - \n * @param {string} params.orderId - \n * @param {string} params.orderNumber - \n * @param {string} params.orderStatus - \n * @param {string} params.orderedAt - \n * @param {string} params.organizationId - \n * @param {string} params.origin - \n * @param {string} params.purchaseMode - \n * @param {string} params.returnMethod - \n * @param {string} params.returnUrl - \n * @param {string} params.secureSessionId - \n * @param {string} params.secureSessionUsedAt - \n * @param {string} params.secureTransmissionId - \n * @param {string} params.status - \n * @param {string} params.transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n */\n punchoutSessionsCreate(params: { accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string }): Promise<Models.PunchoutSession>;\n /**\n *\n * @param {string} accountId - \n * @param {string} channelCode - \n * @param {string} expiresAt - \n * @param {string} protocol - \n * @param {string} psid - \n * @param {string} cartId - \n * @param {string} claimedAt - \n * @param {string} closedReason - \n * @param {string} contactId - \n * @param {string} correlationKey - \n * @param {string} entryAction - \n * @param {object} entryIntent - \n * @param {object} entryPayload - \n * @param {string} externalUserId - \n * @param {string} orderId - \n * @param {string} orderNumber - \n * @param {string} orderStatus - \n * @param {string} orderedAt - \n * @param {string} organizationId - \n * @param {string} origin - \n * @param {string} purchaseMode - \n * @param {string} returnMethod - \n * @param {string} returnUrl - \n * @param {string} secureSessionId - \n * @param {string} secureSessionUsedAt - \n * @param {string} secureTransmissionId - \n * @param {string} status - \n * @param {string} transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsCreate(accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string): Promise<Models.PunchoutSession>;\n punchoutSessionsCreate(\n paramsOrFirst: { accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (object)?, (object)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.PunchoutSession> {\n let params: { accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountId: string, channelCode: string, expiresAt: string, protocol: string, psid: string, cartId?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string };\n } else {\n params = {\n accountId: paramsOrFirst as string,\n channelCode: rest[0] as string,\n expiresAt: rest[1] as string,\n protocol: rest[2] as string,\n psid: rest[3] as string,\n cartId: rest[4] as string,\n claimedAt: rest[5] as string,\n closedReason: rest[6] as string,\n contactId: rest[7] as string,\n correlationKey: rest[8] as string,\n entryAction: rest[9] as string,\n entryIntent: rest[10] as object,\n entryPayload: rest[11] as object,\n externalUserId: rest[12] as string,\n orderId: rest[13] as string,\n orderNumber: rest[14] as string,\n orderStatus: rest[15] as string,\n orderedAt: rest[16] as string,\n organizationId: rest[17] as string,\n origin: rest[18] as string,\n purchaseMode: rest[19] as string,\n returnMethod: rest[20] as string,\n returnUrl: rest[21] as string,\n secureSessionId: rest[22] as string,\n secureSessionUsedAt: rest[23] as string,\n secureTransmissionId: rest[24] as string,\n status: rest[25] as string,\n transferredAt: rest[26] as string \n };\n }\n \n const accountId = params.accountId;\n const channelCode = params.channelCode;\n const expiresAt = params.expiresAt;\n const protocol = params.protocol;\n const psid = params.psid;\n const cartId = params.cartId;\n const claimedAt = params.claimedAt;\n const closedReason = params.closedReason;\n const contactId = params.contactId;\n const correlationKey = params.correlationKey;\n const entryAction = params.entryAction;\n const entryIntent = params.entryIntent;\n const entryPayload = params.entryPayload;\n const externalUserId = params.externalUserId;\n const orderId = params.orderId;\n const orderNumber = params.orderNumber;\n const orderStatus = params.orderStatus;\n const orderedAt = params.orderedAt;\n const organizationId = params.organizationId;\n const origin = params.origin;\n const purchaseMode = params.purchaseMode;\n const returnMethod = params.returnMethod;\n const returnUrl = params.returnUrl;\n const secureSessionId = params.secureSessionId;\n const secureSessionUsedAt = params.secureSessionUsedAt;\n const secureTransmissionId = params.secureTransmissionId;\n const status = params.status;\n const transferredAt = params.transferredAt;\n\n if (typeof accountId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountId\"');\n }\n if (typeof channelCode === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"channelCode\"');\n }\n if (typeof expiresAt === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"expiresAt\"');\n }\n if (typeof protocol === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"protocol\"');\n }\n if (typeof psid === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"psid\"');\n }\n\n const apiPath = '/v1/punchout/sessions';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\n }\n if (typeof channelCode !== 'undefined') {\n apiPayload['channel_code'] = channelCode;\n }\n if (typeof claimedAt !== 'undefined') {\n apiPayload['claimed_at'] = claimedAt;\n }\n if (typeof closedReason !== 'undefined') {\n apiPayload['closed_reason'] = closedReason;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof correlationKey !== 'undefined') {\n apiPayload['correlation_key'] = correlationKey;\n }\n if (typeof entryAction !== 'undefined') {\n apiPayload['entry_action'] = entryAction;\n }\n if (typeof entryIntent !== 'undefined') {\n apiPayload['entry_intent'] = entryIntent;\n }\n if (typeof entryPayload !== 'undefined') {\n apiPayload['entry_payload'] = entryPayload;\n }\n if (typeof expiresAt !== 'undefined') {\n apiPayload['expires_at'] = expiresAt;\n }\n if (typeof externalUserId !== 'undefined') {\n apiPayload['external_user_id'] = externalUserId;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n if (typeof orderNumber !== 'undefined') {\n apiPayload['order_number'] = orderNumber;\n }\n if (typeof orderStatus !== 'undefined') {\n apiPayload['order_status'] = orderStatus;\n }\n if (typeof orderedAt !== 'undefined') {\n apiPayload['ordered_at'] = orderedAt;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof origin !== 'undefined') {\n apiPayload['origin'] = origin;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof psid !== 'undefined') {\n apiPayload['psid'] = psid;\n }\n if (typeof purchaseMode !== 'undefined') {\n apiPayload['purchase_mode'] = purchaseMode;\n }\n if (typeof returnMethod !== 'undefined') {\n apiPayload['return_method'] = returnMethod;\n }\n if (typeof returnUrl !== 'undefined') {\n apiPayload['return_url'] = returnUrl;\n }\n if (typeof secureSessionId !== 'undefined') {\n apiPayload['secure_session_id'] = secureSessionId;\n }\n if (typeof secureSessionUsedAt !== 'undefined') {\n apiPayload['secure_session_used_at'] = secureSessionUsedAt;\n }\n if (typeof secureTransmissionId !== 'undefined') {\n apiPayload['secure_transmission_id'] = secureTransmissionId;\n }\n if (typeof status !== 'undefined') {\n apiPayload['status'] = status;\n }\n if (typeof transferredAt !== 'undefined') {\n apiPayload['transferred_at'] = transferredAt;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutSessionsDelete(params: { id: string }): Promise<{}>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsDelete(id: string): Promise<{}>;\n punchoutSessionsDelete(\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/punchout/sessions/{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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n */\n punchoutSessionsGet(params: { id: string }): Promise<Models.PunchoutSession>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsGet(id: string): Promise<Models.PunchoutSession>;\n punchoutSessionsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutSession> {\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/punchout/sessions/{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 *\n * @param {string} params.id - \n * @param {string} params.accountId - \n * @param {string} params.cartId - \n * @param {string} params.channelCode - \n * @param {string} params.claimedAt - \n * @param {string} params.closedReason - \n * @param {string} params.contactId - \n * @param {string} params.correlationKey - \n * @param {string} params.entryAction - \n * @param {object} params.entryIntent - \n * @param {object} params.entryPayload - \n * @param {string} params.expiresAt - \n * @param {string} params.externalUserId - \n * @param {string} params.orderId - \n * @param {string} params.orderNumber - \n * @param {string} params.orderStatus - \n * @param {string} params.orderedAt - \n * @param {string} params.organizationId - \n * @param {string} params.origin - \n * @param {string} params.protocol - \n * @param {string} params.psid - \n * @param {string} params.purchaseMode - \n * @param {string} params.returnMethod - \n * @param {string} params.returnUrl - \n * @param {string} params.secureSessionId - \n * @param {string} params.secureSessionUsedAt - \n * @param {string} params.secureTransmissionId - \n * @param {string} params.status - \n * @param {string} params.transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n */\n punchoutSessionsUpdate(params: { id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string }): Promise<Models.PunchoutSession>;\n /**\n *\n * @param {string} id - \n * @param {string} accountId - \n * @param {string} cartId - \n * @param {string} channelCode - \n * @param {string} claimedAt - \n * @param {string} closedReason - \n * @param {string} contactId - \n * @param {string} correlationKey - \n * @param {string} entryAction - \n * @param {object} entryIntent - \n * @param {object} entryPayload - \n * @param {string} expiresAt - \n * @param {string} externalUserId - \n * @param {string} orderId - \n * @param {string} orderNumber - \n * @param {string} orderStatus - \n * @param {string} orderedAt - \n * @param {string} organizationId - \n * @param {string} origin - \n * @param {string} protocol - \n * @param {string} psid - \n * @param {string} purchaseMode - \n * @param {string} returnMethod - \n * @param {string} returnUrl - \n * @param {string} secureSessionId - \n * @param {string} secureSessionUsedAt - \n * @param {string} secureTransmissionId - \n * @param {string} status - \n * @param {string} transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSession>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsUpdate(id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string): Promise<Models.PunchoutSession>;\n punchoutSessionsUpdate(\n paramsOrFirst: { id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (object)?, (object)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?] \n ): Promise<Models.PunchoutSession> {\n let params: { id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, accountId?: string, cartId?: string, channelCode?: string, claimedAt?: string, closedReason?: string, contactId?: string, correlationKey?: string, entryAction?: string, entryIntent?: object, entryPayload?: object, expiresAt?: string, externalUserId?: string, orderId?: string, orderNumber?: string, orderStatus?: string, orderedAt?: string, organizationId?: string, origin?: string, protocol?: string, psid?: string, purchaseMode?: string, returnMethod?: string, returnUrl?: string, secureSessionId?: string, secureSessionUsedAt?: string, secureTransmissionId?: string, status?: string, transferredAt?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n accountId: rest[0] as string,\n cartId: rest[1] as string,\n channelCode: rest[2] as string,\n claimedAt: rest[3] as string,\n closedReason: rest[4] as string,\n contactId: rest[5] as string,\n correlationKey: rest[6] as string,\n entryAction: rest[7] as string,\n entryIntent: rest[8] as object,\n entryPayload: rest[9] as object,\n expiresAt: rest[10] as string,\n externalUserId: rest[11] as string,\n orderId: rest[12] as string,\n orderNumber: rest[13] as string,\n orderStatus: rest[14] as string,\n orderedAt: rest[15] as string,\n organizationId: rest[16] as string,\n origin: rest[17] as string,\n protocol: rest[18] as string,\n psid: rest[19] as string,\n purchaseMode: rest[20] as string,\n returnMethod: rest[21] as string,\n returnUrl: rest[22] as string,\n secureSessionId: rest[23] as string,\n secureSessionUsedAt: rest[24] as string,\n secureTransmissionId: rest[25] as string,\n status: rest[26] as string,\n transferredAt: rest[27] as string \n };\n }\n \n const id = params.id;\n const accountId = params.accountId;\n const cartId = params.cartId;\n const channelCode = params.channelCode;\n const claimedAt = params.claimedAt;\n const closedReason = params.closedReason;\n const contactId = params.contactId;\n const correlationKey = params.correlationKey;\n const entryAction = params.entryAction;\n const entryIntent = params.entryIntent;\n const entryPayload = params.entryPayload;\n const expiresAt = params.expiresAt;\n const externalUserId = params.externalUserId;\n const orderId = params.orderId;\n const orderNumber = params.orderNumber;\n const orderStatus = params.orderStatus;\n const orderedAt = params.orderedAt;\n const organizationId = params.organizationId;\n const origin = params.origin;\n const protocol = params.protocol;\n const psid = params.psid;\n const purchaseMode = params.purchaseMode;\n const returnMethod = params.returnMethod;\n const returnUrl = params.returnUrl;\n const secureSessionId = params.secureSessionId;\n const secureSessionUsedAt = params.secureSessionUsedAt;\n const secureTransmissionId = params.secureTransmissionId;\n const status = params.status;\n const transferredAt = params.transferredAt;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/punchout/sessions/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\n }\n if (typeof channelCode !== 'undefined') {\n apiPayload['channel_code'] = channelCode;\n }\n if (typeof claimedAt !== 'undefined') {\n apiPayload['claimed_at'] = claimedAt;\n }\n if (typeof closedReason !== 'undefined') {\n apiPayload['closed_reason'] = closedReason;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof correlationKey !== 'undefined') {\n apiPayload['correlation_key'] = correlationKey;\n }\n if (typeof entryAction !== 'undefined') {\n apiPayload['entry_action'] = entryAction;\n }\n if (typeof entryIntent !== 'undefined') {\n apiPayload['entry_intent'] = entryIntent;\n }\n if (typeof entryPayload !== 'undefined') {\n apiPayload['entry_payload'] = entryPayload;\n }\n if (typeof expiresAt !== 'undefined') {\n apiPayload['expires_at'] = expiresAt;\n }\n if (typeof externalUserId !== 'undefined') {\n apiPayload['external_user_id'] = externalUserId;\n }\n if (typeof orderId !== 'undefined') {\n apiPayload['order_id'] = orderId;\n }\n if (typeof orderNumber !== 'undefined') {\n apiPayload['order_number'] = orderNumber;\n }\n if (typeof orderStatus !== 'undefined') {\n apiPayload['order_status'] = orderStatus;\n }\n if (typeof orderedAt !== 'undefined') {\n apiPayload['ordered_at'] = orderedAt;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof origin !== 'undefined') {\n apiPayload['origin'] = origin;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof psid !== 'undefined') {\n apiPayload['psid'] = psid;\n }\n if (typeof purchaseMode !== 'undefined') {\n apiPayload['purchase_mode'] = purchaseMode;\n }\n if (typeof returnMethod !== 'undefined') {\n apiPayload['return_method'] = returnMethod;\n }\n if (typeof returnUrl !== 'undefined') {\n apiPayload['return_url'] = returnUrl;\n }\n if (typeof secureSessionId !== 'undefined') {\n apiPayload['secure_session_id'] = secureSessionId;\n }\n if (typeof secureSessionUsedAt !== 'undefined') {\n apiPayload['secure_session_used_at'] = secureSessionUsedAt;\n }\n if (typeof secureTransmissionId !== 'undefined') {\n apiPayload['secure_transmission_id'] = secureTransmissionId;\n }\n if (typeof status !== 'undefined') {\n apiPayload['status'] = status;\n }\n if (typeof transferredAt !== 'undefined') {\n apiPayload['transferred_at'] = transferredAt;\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 * The start of a punchout visit in the shop. Resolves the buyer the external system named to an ordinary contact — the named one, else the account's fallback contact, else whatever the account's policy for an unknown name says — gives the visit a cart of its own if it brought none (a new, empty one, owned by the visit's handle rather than by the contact, because one contact may carry several ERP users' visits at once), asks the app that owns buyer authentication to sign that contact in, and answers the secret together with the channel, the action and that cart. The secret is single-use and short-lived: redeem it server-side, and keep it out of a redirect URL, a browser history and a Referer. Answered exactly ONCE — the handle travelled through the external system in the clear. A second claim, an expired or revoked visit, one already handed back and a handle nobody minted all get the same answer, deliberately.\n *\n * @param {string} params.psid - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutClaim>}\n */\n punchoutSessionsClaim(params: { psid: string, data: object }): Promise<Models.PunchoutClaim>;\n /**\n * The start of a punchout visit in the shop. Resolves the buyer the external system named to an ordinary contact — the named one, else the account's fallback contact, else whatever the account's policy for an unknown name says — gives the visit a cart of its own if it brought none (a new, empty one, owned by the visit's handle rather than by the contact, because one contact may carry several ERP users' visits at once), asks the app that owns buyer authentication to sign that contact in, and answers the secret together with the channel, the action and that cart. The secret is single-use and short-lived: redeem it server-side, and keep it out of a redirect URL, a browser history and a Referer. Answered exactly ONCE — the handle travelled through the external system in the clear. A second claim, an expired or revoked visit, one already handed back and a handle nobody minted all get the same answer, deliberately.\n *\n * @param {string} psid - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutClaim>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsClaim(psid: string, data: object): Promise<Models.PunchoutClaim>;\n punchoutSessionsClaim(\n paramsOrFirst: { psid: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutClaim> {\n let params: { psid: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { psid: string, data: object };\n } else {\n params = {\n psid: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const psid = params.psid;\n const data = params.data;\n\n if (typeof psid === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"psid\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/sessions/{psid}/claim'.replace('{psid}', psid);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 other way an IDS visit ends, for an account whose purchase mode is order: the buyer checked out in the shop, and the order is an ORDINARY order placed through the ordinary checkout. Call it after the checkout. This app believes the orders app, not the caller: it reads the order the visit's cart became, records its id, number and status on the visit and closes it as ordered. An order awaiting the buyer organisation's approval counts — the cart is converted either way — and a later decline changes nothing here. A visit that ran out while the buyer checked out is still closed as ordered when the order was created before it ran out. A retried call answers the visit as it was closed.\n *\n * @param {string} params.psid - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutOrdered>}\n */\n punchoutSessionsOrdered(params: { psid: string, data: object }): Promise<Models.PunchoutOrdered>;\n /**\n * The other way an IDS visit ends, for an account whose purchase mode is order: the buyer checked out in the shop, and the order is an ORDINARY order placed through the ordinary checkout. Call it after the checkout. This app believes the orders app, not the caller: it reads the order the visit's cart became, records its id, number and status on the visit and closes it as ordered. An order awaiting the buyer organisation's approval counts — the cart is converted either way — and a later decline changes nothing here. A visit that ran out while the buyer checked out is still closed as ordered when the order was created before it ran out. A retried call answers the visit as it was closed.\n *\n * @param {string} psid - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutOrdered>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsOrdered(psid: string, data: object): Promise<Models.PunchoutOrdered>;\n punchoutSessionsOrdered(\n paramsOrFirst: { psid: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutOrdered> {\n let params: { psid: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { psid: string, data: object };\n } else {\n params = {\n psid: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const psid = params.psid;\n const data = params.data;\n\n if (typeof psid === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"psid\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/sessions/{psid}/ordered'.replace('{psid}', psid);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 end of a punchout visit. Answers where the cart goes, by which method and encoding, and the mapped fields to submit — one shape for all three protocols, whether that means dozens of named fields (OCI) or one field holding a whole document (cXML, IDS). The payload is ANSWERED, never posted from here: a request from this app carries none of the buyer's ERP session, and the protocols that expect a browser form post would reject it even if it did. Records a transfer with its normalised lines and the exact payload, mints a correlation key into that payload so an order arriving weeks later can be matched to it, and closes the visit as transferred. Creates NO order and reserves NO stock — the procurement system has decided nothing. On an IDS account whose purchase mode is order_and_transfer the cart was already ordered through the ordinary checkout: the hand-back requires that order, reads it from the orders app, names it in the document (RueckgabeKZ, OrderConfNo) and on the transfer, and closes the visit as transferred. A retried call answers the same payload and records no second transfer; a visit that expired or was revoked is refused, with the same answer a handle that never existed gets.\n *\n * @param {string} params.psid - \n * @param {object} params.data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutReturnPayload>}\n */\n punchoutSessionsReturn(params: { psid: string, data: object }): Promise<Models.PunchoutReturnPayload>;\n /**\n * The end of a punchout visit. Answers where the cart goes, by which method and encoding, and the mapped fields to submit — one shape for all three protocols, whether that means dozens of named fields (OCI) or one field holding a whole document (cXML, IDS). The payload is ANSWERED, never posted from here: a request from this app carries none of the buyer's ERP session, and the protocols that expect a browser form post would reject it even if it did. Records a transfer with its normalised lines and the exact payload, mints a correlation key into that payload so an order arriving weeks later can be matched to it, and closes the visit as transferred. Creates NO order and reserves NO stock — the procurement system has decided nothing. On an IDS account whose purchase mode is order_and_transfer the cart was already ordered through the ordinary checkout: the hand-back requires that order, reads it from the orders app, names it in the document (RueckgabeKZ, OrderConfNo) and on the transfer, and closes the visit as transferred. A retried call answers the same payload and records no second transfer; a visit that expired or was revoked is refused, with the same answer a handle that never existed gets.\n *\n * @param {string} psid - \n * @param {object} data - Request body\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutReturnPayload>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutSessionsReturn(psid: string, data: object): Promise<Models.PunchoutReturnPayload>;\n punchoutSessionsReturn(\n paramsOrFirst: { psid: string, data: object } | string,\n ...rest: [(object)?] \n ): Promise<Models.PunchoutReturnPayload> {\n let params: { psid: string, data: object };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { psid: string, data: object };\n } else {\n params = {\n psid: paramsOrFirst as string,\n data: rest[0] as object \n };\n }\n \n const psid = params.psid;\n const data = params.data;\n\n if (typeof psid === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"psid\"');\n }\n if (typeof data === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"data\"');\n }\n\n const apiPath = '/v1/punchout/sessions/{psid}/return'.replace('{psid}', psid);\n const apiPayload: Payload = {};\n if (typeof data !== 'undefined') {\n Object.assign(apiPayload, data);\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 steps are the ones cockpit.json declares under setup.steps: the shipped field mappings and the first punchout account. Each is done when its table holds a row, so none is marked by hand.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutSetupState>}\n */\n punchoutSetupGet(): Promise<Models.PunchoutSetupState> {\n\n const apiPath = '/v1/punchout/setup';\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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutTransferItemsList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransferItemsList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutTransferItemsList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/transfer-items';\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 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 *\n * @param {string} params.name - \n * @param {number} params.quantity - \n * @param {string} params.transferId - \n * @param {string} params.currency - \n * @param {string} params.externalRef - \n * @param {number} params.lineGross - \n * @param {number} params.lineNet - \n * @param {object} params.metadata - \n * @param {number} params.position - \n * @param {string} params.productId - \n * @param {string} params.sku - \n * @param {number} params.taxRate - \n * @param {string} params.unit - \n * @param {number} params.unitPrice - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransferItem>}\n */\n punchoutTransferItemsCreate(params: { name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number }): Promise<Models.PunchoutTransferItem>;\n /**\n *\n * @param {string} name - \n * @param {number} quantity - \n * @param {string} transferId - \n * @param {string} currency - \n * @param {string} externalRef - \n * @param {number} lineGross - \n * @param {number} lineNet - \n * @param {object} metadata - \n * @param {number} position - \n * @param {string} productId - \n * @param {string} sku - \n * @param {number} taxRate - \n * @param {string} unit - \n * @param {number} unitPrice - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransferItem>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransferItemsCreate(name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number): Promise<Models.PunchoutTransferItem>;\n punchoutTransferItemsCreate(\n paramsOrFirst: { name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number } | string,\n ...rest: [(number)?, (string)?, (string)?, (string)?, (number)?, (number)?, (object)?, (number)?, (string)?, (string)?, (number)?, (string)?, (number)?] \n ): Promise<Models.PunchoutTransferItem> {\n let params: { name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: string, quantity: number, transferId: string, currency?: string, externalRef?: string, lineGross?: number, lineNet?: number, metadata?: object, position?: number, productId?: string, sku?: string, taxRate?: number, unit?: string, unitPrice?: number };\n } else {\n params = {\n name: paramsOrFirst as string,\n quantity: rest[0] as number,\n transferId: rest[1] as string,\n currency: rest[2] as string,\n externalRef: rest[3] as string,\n lineGross: rest[4] as number,\n lineNet: rest[5] as number,\n metadata: rest[6] as object,\n position: rest[7] as number,\n productId: rest[8] as string,\n sku: rest[9] as string,\n taxRate: rest[10] as number,\n unit: rest[11] as string,\n unitPrice: rest[12] as number \n };\n }\n \n const name = params.name;\n const quantity = params.quantity;\n const transferId = params.transferId;\n const currency = params.currency;\n const externalRef = params.externalRef;\n const lineGross = params.lineGross;\n const lineNet = params.lineNet;\n const metadata = params.metadata;\n const position = params.position;\n const productId = params.productId;\n const sku = params.sku;\n const taxRate = params.taxRate;\n const unit = params.unit;\n const unitPrice = params.unitPrice;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n if (typeof quantity === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"quantity\"');\n }\n if (typeof transferId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"transferId\"');\n }\n\n const apiPath = '/v1/punchout/transfer-items';\n const apiPayload: Payload = {};\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalRef !== 'undefined') {\n apiPayload['external_ref'] = externalRef;\n }\n if (typeof lineGross !== 'undefined') {\n apiPayload['line_gross'] = lineGross;\n }\n if (typeof lineNet !== 'undefined') {\n apiPayload['line_net'] = lineNet;\n }\n if (typeof metadata !== 'undefined') {\n apiPayload['metadata'] = metadata;\n }\n if (typeof name !== 'undefined') {\n apiPayload['name'] = name;\n }\n if (typeof position !== 'undefined') {\n apiPayload['position'] = position;\n }\n if (typeof productId !== 'undefined') {\n apiPayload['product_id'] = productId;\n }\n if (typeof quantity !== 'undefined') {\n apiPayload['quantity'] = quantity;\n }\n if (typeof sku !== 'undefined') {\n apiPayload['sku'] = sku;\n }\n if (typeof taxRate !== 'undefined') {\n apiPayload['tax_rate'] = taxRate;\n }\n if (typeof transferId !== 'undefined') {\n apiPayload['transfer_id'] = transferId;\n }\n if (typeof unit !== 'undefined') {\n apiPayload['unit'] = unit;\n }\n if (typeof unitPrice !== 'undefined') {\n apiPayload['unit_price'] = unitPrice;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransferItem>}\n */\n punchoutTransferItemsGet(params: { id: string }): Promise<Models.PunchoutTransferItem>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransferItem>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransferItemsGet(id: string): Promise<Models.PunchoutTransferItem>;\n punchoutTransferItemsGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutTransferItem> {\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/punchout/transfer-items/{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 *\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n */\n punchoutTransfersList(params?: { limit?: number, offset?: number, order?: string }): Promise<{}>;\n /**\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 as 'column.asc' | 'column.desc', e.g. 'created_at.desc'.\n * @throws {RevenexxException}\n * @returns {Promise<{}>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransfersList(limit?: number, offset?: number, order?: string): Promise<{}>;\n punchoutTransfersList(\n paramsOrFirst?: { limit?: number, offset?: number, order?: string } | number,\n ...rest: [(number)?, (string)?] \n ): Promise<{}> {\n let params: { limit?: number, offset?: number, order?: string };\n \n if (!paramsOrFirst || (paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { limit?: number, offset?: number, order?: string };\n } else {\n params = {\n limit: paramsOrFirst as number,\n offset: rest[0] as number,\n order: rest[1] as string \n };\n }\n \n const limit = params.limit;\n const offset = params.offset;\n const order = params.order;\n\n\n const apiPath = '/v1/punchout/transfers';\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 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 *\n * @param {string} params.accountId - \n * @param {string} params.correlationKey - \n * @param {string} params.protocol - \n * @param {string} params.sessionId - \n * @param {string} params.cartId - \n * @param {string} params.contactId - \n * @param {string} params.currency - \n * @param {string} params.externalId - The id the receiving system has for this hand-back — a cXML `PayloadID`, the reference an ERP answers the posted cart with. It is the idempotency key of the protocol rather than of this app: unique per tenant where it is set, so a hand-back a buyer's browser replays cannot leave a second transfer on record. Distinct from `correlation_key`, which this app mints and stamps on the visit before the mapping runs — that one is ours and is always there, this one is theirs and is filled by whoever records the receipt.\n * @param {object} params.externalRefs - Every other system that knows this hand-back, keyed by system name — the procurement platform's own id beside the order number the ERP later gives it. `external_id` is the leading system; this is the rest. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document.\n * @param {number} params.itemCount - \n * @param {string} params.matchedAt - \n * @param {string} params.matchedOrderId - \n * @param {string} params.organizationId - \n * @param {object} params.payload - \n * @param {object[]} params.problems - Every field the payload is missing, and why: a mapping that failed, or a value the protocol's type could not take. Empty when nothing is missing. `transfer.degraded` announces the same, once.\n * @param {object} params.sourceData - What the receiving system said back, kept as it said it — the acknowledgement, its ETag, and the fields of it this app does not model. A transfer is evidence and is added to but never rewritten, so this is where a later answer about it goes rather than over `payload`, which is what was handed over and must stay as it was handed over.\n * @param {string} params.sourceSyncedAt - When this transfer was last confirmed against the system that received it — what an acknowledgement run stamps, and what tells an operator that the receipts have stopped arriving. Null while nobody has confirmed it, which is every transfer this app writes on its own: a hand-back answers a payload for a browser to submit, and whether it arrived is somebody else's answer.\n * @param {string} params.targetUrl - \n * @param {number} params.totalGross - \n * @param {number} params.totalNet - \n * @param {string} params.transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n */\n punchoutTransfersCreate(params: { accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string }): Promise<Models.PunchoutTransfer>;\n /**\n *\n * @param {string} accountId - \n * @param {string} correlationKey - \n * @param {string} protocol - \n * @param {string} sessionId - \n * @param {string} cartId - \n * @param {string} contactId - \n * @param {string} currency - \n * @param {string} externalId - The id the receiving system has for this hand-back — a cXML `PayloadID`, the reference an ERP answers the posted cart with. It is the idempotency key of the protocol rather than of this app: unique per tenant where it is set, so a hand-back a buyer's browser replays cannot leave a second transfer on record. Distinct from `correlation_key`, which this app mints and stamps on the visit before the mapping runs — that one is ours and is always there, this one is theirs and is filled by whoever records the receipt.\n * @param {object} externalRefs - Every other system that knows this hand-back, keyed by system name — the procurement platform's own id beside the order number the ERP later gives it. `external_id` is the leading system; this is the rest. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document.\n * @param {number} itemCount - \n * @param {string} matchedAt - \n * @param {string} matchedOrderId - \n * @param {string} organizationId - \n * @param {object} payload - \n * @param {object[]} problems - Every field the payload is missing, and why: a mapping that failed, or a value the protocol's type could not take. Empty when nothing is missing. `transfer.degraded` announces the same, once.\n * @param {object} sourceData - What the receiving system said back, kept as it said it — the acknowledgement, its ETag, and the fields of it this app does not model. A transfer is evidence and is added to but never rewritten, so this is where a later answer about it goes rather than over `payload`, which is what was handed over and must stay as it was handed over.\n * @param {string} sourceSyncedAt - When this transfer was last confirmed against the system that received it — what an acknowledgement run stamps, and what tells an operator that the receipts have stopped arriving. Null while nobody has confirmed it, which is every transfer this app writes on its own: a hand-back answers a payload for a browser to submit, and whether it arrived is somebody else's answer.\n * @param {string} targetUrl - \n * @param {number} totalGross - \n * @param {number} totalNet - \n * @param {string} transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransfersCreate(accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string): Promise<Models.PunchoutTransfer>;\n punchoutTransfersCreate(\n paramsOrFirst: { accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (object)?, (number)?, (string)?, (string)?, (string)?, (object)?, (object[])?, (object)?, (string)?, (string)?, (number)?, (number)?, (string)?] \n ): Promise<Models.PunchoutTransfer> {\n let params: { accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { accountId: string, correlationKey: string, protocol: string, sessionId: string, cartId?: string, contactId?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string };\n } else {\n params = {\n accountId: paramsOrFirst as string,\n correlationKey: rest[0] as string,\n protocol: rest[1] as string,\n sessionId: rest[2] as string,\n cartId: rest[3] as string,\n contactId: rest[4] as string,\n currency: rest[5] as string,\n externalId: rest[6] as string,\n externalRefs: rest[7] as object,\n itemCount: rest[8] as number,\n matchedAt: rest[9] as string,\n matchedOrderId: rest[10] as string,\n organizationId: rest[11] as string,\n payload: rest[12] as object,\n problems: rest[13] as object[],\n sourceData: rest[14] as object,\n sourceSyncedAt: rest[15] as string,\n targetUrl: rest[16] as string,\n totalGross: rest[17] as number,\n totalNet: rest[18] as number,\n transferredAt: rest[19] as string \n };\n }\n \n const accountId = params.accountId;\n const correlationKey = params.correlationKey;\n const protocol = params.protocol;\n const sessionId = params.sessionId;\n const cartId = params.cartId;\n const contactId = params.contactId;\n const currency = params.currency;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const itemCount = params.itemCount;\n const matchedAt = params.matchedAt;\n const matchedOrderId = params.matchedOrderId;\n const organizationId = params.organizationId;\n const payload = params.payload;\n const problems = params.problems;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const targetUrl = params.targetUrl;\n const totalGross = params.totalGross;\n const totalNet = params.totalNet;\n const transferredAt = params.transferredAt;\n\n if (typeof accountId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"accountId\"');\n }\n if (typeof correlationKey === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"correlationKey\"');\n }\n if (typeof protocol === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"protocol\"');\n }\n if (typeof sessionId === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"sessionId\"');\n }\n\n const apiPath = '/v1/punchout/transfers';\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof correlationKey !== 'undefined') {\n apiPayload['correlation_key'] = correlationKey;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof itemCount !== 'undefined') {\n apiPayload['item_count'] = itemCount;\n }\n if (typeof matchedAt !== 'undefined') {\n apiPayload['matched_at'] = matchedAt;\n }\n if (typeof matchedOrderId !== 'undefined') {\n apiPayload['matched_order_id'] = matchedOrderId;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof payload !== 'undefined') {\n apiPayload['payload'] = payload;\n }\n if (typeof problems !== 'undefined') {\n apiPayload['problems'] = problems;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof sessionId !== 'undefined') {\n apiPayload['session_id'] = sessionId;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof targetUrl !== 'undefined') {\n apiPayload['target_url'] = targetUrl;\n }\n if (typeof totalGross !== 'undefined') {\n apiPayload['total_gross'] = totalGross;\n }\n if (typeof totalNet !== 'undefined') {\n apiPayload['total_net'] = totalNet;\n }\n if (typeof transferredAt !== 'undefined') {\n apiPayload['transferred_at'] = transferredAt;\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 *\n * @param {string} params.id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n */\n punchoutTransfersGet(params: { id: string }): Promise<Models.PunchoutTransfer>;\n /**\n *\n * @param {string} id - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransfersGet(id: string): Promise<Models.PunchoutTransfer>;\n punchoutTransfersGet(\n paramsOrFirst: { id: string } | string \n ): Promise<Models.PunchoutTransfer> {\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/punchout/transfers/{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 *\n * @param {string} params.id - \n * @param {string} params.accountId - \n * @param {string} params.cartId - \n * @param {string} params.contactId - \n * @param {string} params.correlationKey - \n * @param {string} params.currency - \n * @param {string} params.externalId - The id the receiving system has for this hand-back — a cXML `PayloadID`, the reference an ERP answers the posted cart with. It is the idempotency key of the protocol rather than of this app: unique per tenant where it is set, so a hand-back a buyer's browser replays cannot leave a second transfer on record. Distinct from `correlation_key`, which this app mints and stamps on the visit before the mapping runs — that one is ours and is always there, this one is theirs and is filled by whoever records the receipt.\n * @param {object} params.externalRefs - Every other system that knows this hand-back, keyed by system name — the procurement platform's own id beside the order number the ERP later gives it. `external_id` is the leading system; this is the rest. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document.\n * @param {number} params.itemCount - \n * @param {string} params.matchedAt - \n * @param {string} params.matchedOrderId - \n * @param {string} params.organizationId - \n * @param {object} params.payload - \n * @param {object[]} params.problems - Every field the payload is missing, and why: a mapping that failed, or a value the protocol's type could not take. Empty when nothing is missing. `transfer.degraded` announces the same, once.\n * @param {string} params.protocol - \n * @param {string} params.sessionId - \n * @param {object} params.sourceData - What the receiving system said back, kept as it said it — the acknowledgement, its ETag, and the fields of it this app does not model. A transfer is evidence and is added to but never rewritten, so this is where a later answer about it goes rather than over `payload`, which is what was handed over and must stay as it was handed over.\n * @param {string} params.sourceSyncedAt - When this transfer was last confirmed against the system that received it — what an acknowledgement run stamps, and what tells an operator that the receipts have stopped arriving. Null while nobody has confirmed it, which is every transfer this app writes on its own: a hand-back answers a payload for a browser to submit, and whether it arrived is somebody else's answer.\n * @param {string} params.targetUrl - \n * @param {number} params.totalGross - \n * @param {number} params.totalNet - \n * @param {string} params.transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n */\n punchoutTransfersUpdate(params: { id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string }): Promise<Models.PunchoutTransfer>;\n /**\n *\n * @param {string} id - \n * @param {string} accountId - \n * @param {string} cartId - \n * @param {string} contactId - \n * @param {string} correlationKey - \n * @param {string} currency - \n * @param {string} externalId - The id the receiving system has for this hand-back — a cXML `PayloadID`, the reference an ERP answers the posted cart with. It is the idempotency key of the protocol rather than of this app: unique per tenant where it is set, so a hand-back a buyer's browser replays cannot leave a second transfer on record. Distinct from `correlation_key`, which this app mints and stamps on the visit before the mapping runs — that one is ours and is always there, this one is theirs and is filled by whoever records the receipt.\n * @param {object} externalRefs - Every other system that knows this hand-back, keyed by system name — the procurement platform's own id beside the order number the ERP later gives it. `external_id` is the leading system; this is the rest. Not something to search on: this contract publishes no column filter at all, and the store compares such a field as a whole document.\n * @param {number} itemCount - \n * @param {string} matchedAt - \n * @param {string} matchedOrderId - \n * @param {string} organizationId - \n * @param {object} payload - \n * @param {object[]} problems - Every field the payload is missing, and why: a mapping that failed, or a value the protocol's type could not take. Empty when nothing is missing. `transfer.degraded` announces the same, once.\n * @param {string} protocol - \n * @param {string} sessionId - \n * @param {object} sourceData - What the receiving system said back, kept as it said it — the acknowledgement, its ETag, and the fields of it this app does not model. A transfer is evidence and is added to but never rewritten, so this is where a later answer about it goes rather than over `payload`, which is what was handed over and must stay as it was handed over.\n * @param {string} sourceSyncedAt - When this transfer was last confirmed against the system that received it — what an acknowledgement run stamps, and what tells an operator that the receipts have stopped arriving. Null while nobody has confirmed it, which is every transfer this app writes on its own: a hand-back answers a payload for a browser to submit, and whether it arrived is somebody else's answer.\n * @param {string} targetUrl - \n * @param {number} totalGross - \n * @param {number} totalNet - \n * @param {string} transferredAt - \n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutTransfer>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutTransfersUpdate(id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string): Promise<Models.PunchoutTransfer>;\n punchoutTransfersUpdate(\n paramsOrFirst: { id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string } | string,\n ...rest: [(string)?, (string)?, (string)?, (string)?, (string)?, (string)?, (object)?, (number)?, (string)?, (string)?, (string)?, (object)?, (object[])?, (string)?, (string)?, (object)?, (string)?, (string)?, (number)?, (number)?, (string)?] \n ): Promise<Models.PunchoutTransfer> {\n let params: { id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { id: string, accountId?: string, cartId?: string, contactId?: string, correlationKey?: string, currency?: string, externalId?: string, externalRefs?: object, itemCount?: number, matchedAt?: string, matchedOrderId?: string, organizationId?: string, payload?: object, problems?: object[], protocol?: string, sessionId?: string, sourceData?: object, sourceSyncedAt?: string, targetUrl?: string, totalGross?: number, totalNet?: number, transferredAt?: string };\n } else {\n params = {\n id: paramsOrFirst as string,\n accountId: rest[0] as string,\n cartId: rest[1] as string,\n contactId: rest[2] as string,\n correlationKey: rest[3] as string,\n currency: rest[4] as string,\n externalId: rest[5] as string,\n externalRefs: rest[6] as object,\n itemCount: rest[7] as number,\n matchedAt: rest[8] as string,\n matchedOrderId: rest[9] as string,\n organizationId: rest[10] as string,\n payload: rest[11] as object,\n problems: rest[12] as object[],\n protocol: rest[13] as string,\n sessionId: rest[14] as string,\n sourceData: rest[15] as object,\n sourceSyncedAt: rest[16] as string,\n targetUrl: rest[17] as string,\n totalGross: rest[18] as number,\n totalNet: rest[19] as number,\n transferredAt: rest[20] as string \n };\n }\n \n const id = params.id;\n const accountId = params.accountId;\n const cartId = params.cartId;\n const contactId = params.contactId;\n const correlationKey = params.correlationKey;\n const currency = params.currency;\n const externalId = params.externalId;\n const externalRefs = params.externalRefs;\n const itemCount = params.itemCount;\n const matchedAt = params.matchedAt;\n const matchedOrderId = params.matchedOrderId;\n const organizationId = params.organizationId;\n const payload = params.payload;\n const problems = params.problems;\n const protocol = params.protocol;\n const sessionId = params.sessionId;\n const sourceData = params.sourceData;\n const sourceSyncedAt = params.sourceSyncedAt;\n const targetUrl = params.targetUrl;\n const totalGross = params.totalGross;\n const totalNet = params.totalNet;\n const transferredAt = params.transferredAt;\n\n if (typeof id === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"id\"');\n }\n\n const apiPath = '/v1/punchout/transfers/{id}'.replace('{id}', id);\n const apiPayload: Payload = {};\n if (typeof accountId !== 'undefined') {\n apiPayload['account_id'] = accountId;\n }\n if (typeof cartId !== 'undefined') {\n apiPayload['cart_id'] = cartId;\n }\n if (typeof contactId !== 'undefined') {\n apiPayload['contact_id'] = contactId;\n }\n if (typeof correlationKey !== 'undefined') {\n apiPayload['correlation_key'] = correlationKey;\n }\n if (typeof currency !== 'undefined') {\n apiPayload['currency'] = currency;\n }\n if (typeof externalId !== 'undefined') {\n apiPayload['external_id'] = externalId;\n }\n if (typeof externalRefs !== 'undefined') {\n apiPayload['external_refs'] = externalRefs;\n }\n if (typeof itemCount !== 'undefined') {\n apiPayload['item_count'] = itemCount;\n }\n if (typeof matchedAt !== 'undefined') {\n apiPayload['matched_at'] = matchedAt;\n }\n if (typeof matchedOrderId !== 'undefined') {\n apiPayload['matched_order_id'] = matchedOrderId;\n }\n if (typeof organizationId !== 'undefined') {\n apiPayload['organization_id'] = organizationId;\n }\n if (typeof payload !== 'undefined') {\n apiPayload['payload'] = payload;\n }\n if (typeof problems !== 'undefined') {\n apiPayload['problems'] = problems;\n }\n if (typeof protocol !== 'undefined') {\n apiPayload['protocol'] = protocol;\n }\n if (typeof sessionId !== 'undefined') {\n apiPayload['session_id'] = sessionId;\n }\n if (typeof sourceData !== 'undefined') {\n apiPayload['source_data'] = sourceData;\n }\n if (typeof sourceSyncedAt !== 'undefined') {\n apiPayload['source_synced_at'] = sourceSyncedAt;\n }\n if (typeof targetUrl !== 'undefined') {\n apiPayload['target_url'] = targetUrl;\n }\n if (typeof totalGross !== 'undefined') {\n apiPayload['total_gross'] = totalGross;\n }\n if (typeof totalNet !== 'undefined') {\n apiPayload['total_net'] = totalNet;\n }\n if (typeof transferredAt !== 'undefined') {\n apiPayload['transferred_at'] = transferredAt;\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 * Discovery for the vocabulary routes: the enums this app enforces, each with its name, its title and its description — and deliberately WITHOUT its values, so a UI can cache this one small answer and fetch only the value sets it renders. Names: auth-strategies, entry-actions, entry-probe-outcome, mapping-documents, mapping-emit, mapping-mutators, mapping-scopes, mapping-sources, mapping-target-kinds, origins, protocol-versions, protocols, purchase-modes, refusal-details, refusal-reasons, return-methods, session-statuses, unknown-user-policies. Fetch one with GET /punchout/vocabularies/{name}.\n *\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutVocabularyIndex>}\n */\n punchoutVocabulariesList(): Promise<Models.PunchoutVocabularyIndex> {\n\n const apiPath = '/v1/punchout/vocabularies';\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 * One vocabulary in full: every permitted value with its title, its description and the badge tone a UI colours it with. The values are read out of the column's CHECK constraint, so the served set IS the set the database accepts and the set the mapping engine understands — a mapping editor offering anything else would produce silently empty fields. `mapping-sources` carries the 25 sources of ADR-0003 (three of them namespaced `cxml.*`, offered only for a cXML account) and `mapping-mutators` the 20 chainable mutators; each value's description names the config keys it reads and which of them are required. Answers 404 for an unknown name.\n *\n * @param {PunchoutVocabulariesGetName} params.name - The vocabulary name — the part after the dot in the qualified id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutVocabulary>}\n */\n punchoutVocabulariesGet(params: { name: PunchoutVocabulariesGetName }): Promise<Models.PunchoutVocabulary>;\n /**\n * One vocabulary in full: every permitted value with its title, its description and the badge tone a UI colours it with. The values are read out of the column's CHECK constraint, so the served set IS the set the database accepts and the set the mapping engine understands — a mapping editor offering anything else would produce silently empty fields. `mapping-sources` carries the 25 sources of ADR-0003 (three of them namespaced `cxml.*`, offered only for a cXML account) and `mapping-mutators` the 20 chainable mutators; each value's description names the config keys it reads and which of them are required. Answers 404 for an unknown name.\n *\n * @param {PunchoutVocabulariesGetName} name - The vocabulary name — the part after the dot in the qualified id.\n * @throws {RevenexxException}\n * @returns {Promise<Models.PunchoutVocabulary>}\n * @deprecated Use the object parameter style method for a better developer experience.\n */\n punchoutVocabulariesGet(name: PunchoutVocabulariesGetName): Promise<Models.PunchoutVocabulary>;\n punchoutVocabulariesGet(\n paramsOrFirst: { name: PunchoutVocabulariesGetName } | PunchoutVocabulariesGetName \n ): Promise<Models.PunchoutVocabulary> {\n let params: { name: PunchoutVocabulariesGetName };\n \n if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('name' in paramsOrFirst))) {\n params = (paramsOrFirst || {}) as { name: PunchoutVocabulariesGetName };\n } else {\n params = {\n name: paramsOrFirst as PunchoutVocabulariesGetName \n };\n }\n \n const name = params.name;\n\n if (typeof name === 'undefined') {\n throw new RevenexxException('Missing required parameter: \"name\"');\n }\n\n const apiPath = '/v1/punchout/vocabularies/{name}'.replace('{name}', name);\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"]}