@justifi/webcomponents 6.7.1 → 6.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/cjs/{check-pkg-version-cLAIX_H6.js → check-pkg-version-BG-Rfkh5.js} +1 -1
  2. package/dist/cjs/hidden-input_2.cjs.entry.js +1 -1
  3. package/dist/cjs/internal-tokenize-payment-method_7.cjs.entry.js +9 -7
  4. package/dist/cjs/justifi-apple-pay_8.cjs.entry.js +5 -4
  5. package/dist/cjs/justifi-business-details.cjs.entry.js +2 -2
  6. package/dist/cjs/justifi-business-form.cjs.entry.js +2 -2
  7. package/dist/cjs/justifi-checkout.cjs.entry.js +2 -2
  8. package/dist/cjs/justifi-checkouts-list.cjs.entry.js +2 -2
  9. package/dist/cjs/justifi-dispute-management.cjs.entry.js +2 -2
  10. package/dist/cjs/justifi-dispute-notification_3.cjs.entry.js +2 -2
  11. package/dist/cjs/justifi-gross-payment-chart.cjs.entry.js +2 -2
  12. package/dist/cjs/justifi-order-terminals.cjs.entry.js +2 -2
  13. package/dist/cjs/justifi-payment-details.cjs.entry.js +2 -2
  14. package/dist/cjs/justifi-payment-provisioning.cjs.entry.js +2 -2
  15. package/dist/cjs/justifi-payment-transactions-list.cjs.entry.js +2 -2
  16. package/dist/cjs/justifi-payments-list.cjs.entry.js +2 -2
  17. package/dist/cjs/justifi-payout-details.cjs.entry.js +2 -2
  18. package/dist/cjs/justifi-payout-transactions-list.cjs.entry.js +2 -2
  19. package/dist/cjs/justifi-payouts-list.cjs.entry.js +2 -2
  20. package/dist/cjs/justifi-refund-payment.cjs.entry.js +98 -6
  21. package/dist/cjs/justifi-season-interruption-insurance.cjs.entry.js +2 -2
  22. package/dist/cjs/justifi-terminal-orders-list.cjs.entry.js +2 -2
  23. package/dist/cjs/justifi-terminals-list.cjs.entry.js +2 -2
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/cjs/{package-C9E_BIbT.js → package-Df5lTFe6.js} +1 -1
  26. package/dist/cjs/webcomponents.cjs.js +1 -1
  27. package/dist/collection/actions/void/void-actions.js +31 -0
  28. package/dist/collection/api/services/void.service.js +9 -0
  29. package/dist/collection/components/modular-checkout/modular-checkout.js +3 -2
  30. package/dist/collection/components/modular-checkout/sub-components/bank-account.js +6 -3
  31. package/dist/collection/components/modular-checkout/sub-components/card-form.js +6 -3
  32. package/dist/collection/components/refund-payment/refund-payment.js +66 -10
  33. package/dist/docs.json +15 -10
  34. package/dist/esm/{check-pkg-version-o2X_8wJ4.js → check-pkg-version-c_8fDHCB.js} +1 -1
  35. package/dist/esm/hidden-input_2.entry.js +1 -1
  36. package/dist/esm/internal-tokenize-payment-method_7.entry.js +9 -7
  37. package/dist/esm/justifi-apple-pay_8.entry.js +5 -4
  38. package/dist/esm/justifi-business-details.entry.js +2 -2
  39. package/dist/esm/justifi-business-form.entry.js +2 -2
  40. package/dist/esm/justifi-checkout.entry.js +2 -2
  41. package/dist/esm/justifi-checkouts-list.entry.js +2 -2
  42. package/dist/esm/justifi-dispute-management.entry.js +2 -2
  43. package/dist/esm/justifi-dispute-notification_3.entry.js +2 -2
  44. package/dist/esm/justifi-gross-payment-chart.entry.js +2 -2
  45. package/dist/esm/justifi-order-terminals.entry.js +2 -2
  46. package/dist/esm/justifi-payment-details.entry.js +2 -2
  47. package/dist/esm/justifi-payment-provisioning.entry.js +2 -2
  48. package/dist/esm/justifi-payment-transactions-list.entry.js +2 -2
  49. package/dist/esm/justifi-payments-list.entry.js +2 -2
  50. package/dist/esm/justifi-payout-details.entry.js +2 -2
  51. package/dist/esm/justifi-payout-transactions-list.entry.js +2 -2
  52. package/dist/esm/justifi-payouts-list.entry.js +2 -2
  53. package/dist/esm/justifi-refund-payment.entry.js +98 -6
  54. package/dist/esm/justifi-season-interruption-insurance.entry.js +2 -2
  55. package/dist/esm/justifi-terminal-orders-list.entry.js +2 -2
  56. package/dist/esm/justifi-terminals-list.entry.js +2 -2
  57. package/dist/esm/loader.js +1 -1
  58. package/dist/esm/{package-Dr8Z8wfP.js → package-BzT9OxlN.js} +1 -1
  59. package/dist/esm/webcomponents.js +1 -1
  60. package/dist/module/bank-account-form.js +1 -1
  61. package/dist/module/bank-account.js +5 -2
  62. package/dist/module/card-form.js +1 -1
  63. package/dist/module/card-form2.js +5 -2
  64. package/dist/module/justifi-checkouts-list-filters.js +1 -1
  65. package/dist/module/justifi-payment-transactions-list.js +1 -1
  66. package/dist/module/justifi-payments-list-filters.js +1 -1
  67. package/dist/module/justifi-payout-transactions-list.js +1 -1
  68. package/dist/module/justifi-payouts-list-filters.js +1 -1
  69. package/dist/module/justifi-refund-payment.js +97 -4
  70. package/dist/module/justifi-terminal-orders-list-filters.js +1 -1
  71. package/dist/module/modular-checkout.js +3 -2
  72. package/dist/module/package.js +1 -1
  73. package/dist/module/payments-list-core2.js +1 -1
  74. package/dist/module/payout-details-core2.js +1 -1
  75. package/dist/module/payouts-list-core2.js +1 -1
  76. package/dist/module/terminal-orders-list-core2.js +1 -1
  77. package/dist/module/utils2.js +1 -1
  78. package/dist/types/actions/void/void-actions.d.ts +10 -0
  79. package/dist/types/api/services/void.service.d.ts +7 -0
  80. package/dist/types/components/modular-checkout/sub-components/bank-account.d.ts +1 -0
  81. package/dist/types/components/modular-checkout/sub-components/card-form.d.ts +1 -0
  82. package/dist/types/components/refund-payment/refund-payment.d.ts +6 -2
  83. package/dist/types/components.d.ts +3 -3
  84. package/dist/webcomponents/{p-4dc358aa.entry.js → p-035a4adc.entry.js} +1 -1
  85. package/dist/webcomponents/{p-e2d33311.entry.js → p-0935600b.entry.js} +1 -1
  86. package/dist/webcomponents/{p-c8a5a2a9.entry.js → p-0ab9a3ae.entry.js} +1 -1
  87. package/dist/webcomponents/{p-BEu9YFnf.js → p-11wdbrqX.js} +1 -1
  88. package/dist/webcomponents/{p-cbd52897.entry.js → p-138ada4a.entry.js} +1 -1
  89. package/dist/webcomponents/{p-d5765545.entry.js → p-148d3327.entry.js} +1 -1
  90. package/dist/webcomponents/p-2cb9edad.entry.js +1 -0
  91. package/dist/webcomponents/{p-ad3a73af.entry.js → p-2d4a2d26.entry.js} +1 -1
  92. package/dist/webcomponents/p-3f14d0c4.entry.js +1 -0
  93. package/dist/webcomponents/{p-cc2a1c7c.entry.js → p-5c6727ae.entry.js} +1 -1
  94. package/dist/webcomponents/{p-3fbe8ac3.entry.js → p-622af881.entry.js} +1 -1
  95. package/dist/webcomponents/{p-062fcfd5.entry.js → p-64ebff16.entry.js} +1 -1
  96. package/dist/webcomponents/p-71577fa1.entry.js +1 -0
  97. package/dist/webcomponents/{p-3fb1cf2b.entry.js → p-7ec4838f.entry.js} +1 -1
  98. package/dist/webcomponents/p-BzT9OxlN.js +1 -0
  99. package/dist/webcomponents/{p-5a7207c0.entry.js → p-af7c219d.entry.js} +1 -1
  100. package/dist/webcomponents/{p-5e6f2128.entry.js → p-b752c5bc.entry.js} +1 -1
  101. package/dist/webcomponents/{p-8884e000.entry.js → p-bbff6196.entry.js} +1 -1
  102. package/dist/webcomponents/p-c0c36187.entry.js +1 -0
  103. package/dist/webcomponents/{p-262e4b23.entry.js → p-d077569e.entry.js} +1 -1
  104. package/dist/webcomponents/{p-abcb4945.entry.js → p-d7b1b7b5.entry.js} +1 -1
  105. package/dist/webcomponents/{p-7bb7aaca.entry.js → p-dc6c9c79.entry.js} +1 -1
  106. package/dist/webcomponents/p-ecbc83bf.entry.js +1 -0
  107. package/dist/webcomponents/{p-cf644e46.entry.js → p-f56d7b4c.entry.js} +1 -1
  108. package/dist/webcomponents/webcomponents.esm.js +1 -1
  109. package/docs/.eslintrc.cjs +17 -0
  110. package/docs/changelog/index.mdx +17 -0
  111. package/docs/entities/businessdetails/index.mdx +143 -0
  112. package/docs/entities/businessform/index.mdx +241 -0
  113. package/docs/entities/index.mdx +19 -0
  114. package/docs/entities/payment-provisioning/index.mdx +128 -0
  115. package/docs/frameworks/angular/index.mdx +112 -0
  116. package/docs/frameworks/index.mdx +18 -0
  117. package/docs/frameworks/react/index.mdx +125 -0
  118. package/docs/frameworks/vue/index.mdx +102 -0
  119. package/docs/helpers/PartsTable.js +50 -0
  120. package/docs/helpers/PropsTable.js +56 -0
  121. package/docs/helpers/index.ts +3 -0
  122. package/docs/helpers/version.js +32 -0
  123. package/docs/introduction/index.mdx +125 -0
  124. package/docs/merchant-tools/checkouts-list/index.mdx +97 -0
  125. package/docs/merchant-tools/gross-payments-chart/index.mdx +83 -0
  126. package/docs/merchant-tools/index.mdx +25 -0
  127. package/docs/merchant-tools/order-terminals/index.mdx +84 -0
  128. package/docs/merchant-tools/payment-details/index.mdx +132 -0
  129. package/docs/merchant-tools/payment-transactions-list/index.mdx +85 -0
  130. package/docs/merchant-tools/payments-list/index.mdx +109 -0
  131. package/docs/merchant-tools/payout-details/index.mdx +84 -0
  132. package/docs/merchant-tools/payout-transactions-list/index.mdx +84 -0
  133. package/docs/merchant-tools/payouts-list/index.mdx +92 -0
  134. package/docs/merchant-tools/terminal-orders-list/index.mdx +85 -0
  135. package/docs/merchant-tools/terminals-list/index.mdx +93 -0
  136. package/docs/modular-checkout/complete-examples/index.mdx +20 -0
  137. package/docs/modular-checkout/index.mdx +20 -0
  138. package/docs/modular-checkout/introduction/index.mdx +102 -0
  139. package/docs/modular-checkout/sub-components/apple-pay.mdx +106 -0
  140. package/docs/modular-checkout/sub-components/bank-account-form.mdx +167 -0
  141. package/docs/modular-checkout/sub-components/card-form.mdx +178 -0
  142. package/docs/modular-checkout/sub-components/index.mdx +23 -0
  143. package/docs/modular-checkout/sub-components/payment-method-options.mdx +87 -0
  144. package/docs/modular-checkout/sub-components/plaid-payment-method.mdx +158 -0
  145. package/docs/modular-checkout/sub-components/saved-payment-methods.mdx +183 -0
  146. package/docs/modular-checkout/sub-components/season-interruption-insurance.mdx +221 -0
  147. package/docs/modular-checkout/sub-components/sezzle-payment-method.mdx +183 -0
  148. package/docs/modular-checkout/sub-components/summary.mdx +111 -0
  149. package/docs/payment-facilitation/dispute-management/index.mdx +99 -0
  150. package/docs/payment-facilitation/index.mdx +21 -0
  151. package/docs/payment-facilitation/refund-payment/index.mdx +241 -0
  152. package/docs/payment-facilitation/tokenize-payment-method/index.mdx +350 -0
  153. package/docs/payment-facilitation/unified-fintech-checkout/342/204/242/index.mdx +150 -0
  154. package/package.json +21 -6
  155. package/dist/webcomponents/p-1df660a9.entry.js +0 -1
  156. package/dist/webcomponents/p-296bd0b6.entry.js +0 -1
  157. package/dist/webcomponents/p-Dr8Z8wfP.js +0 -1
  158. package/dist/webcomponents/p-ca0d1c6c.entry.js +0 -1
  159. package/dist/webcomponents/p-cc0c722c.entry.js +0 -1
  160. package/dist/webcomponents/p-def84700.entry.js +0 -1
@@ -0,0 +1,183 @@
1
+ ---
2
+ id: modular-checkout/sub-components/sezzle-payment-method
3
+ title: Sezzle Payment Method
4
+ description: Sezzle BNPL rail for Modular Checkout, including disclosure copy and redirect handling.
5
+ sidebar_position: 24
6
+ ---
7
+
8
+ import {
9
+ PropsTable,
10
+ PartsTable,
11
+ getWebcomponentsVersion,
12
+ } from '@justifi/webcomponents/docs/helpers';
13
+
14
+ ## Overview
15
+
16
+ Renders a radio input for selecting the Sezzle payment method, if BNPL (Buy Now Pay Later) is enabled for the sub account.
17
+
18
+ This component is **designed to be used within** the `justifi-modular-checkout` and **does not accept props directly**. Instead, it relies on the shared state passed through the Stencil Store, managed by the `justifi-modular-checkout` component.
19
+
20
+ **Authorization** and business context are also handled by `justifi-modular-checkout`, which manages authentication tokens and related configuration.
21
+
22
+ This component exposes **no public methods or properties** and is not intended for standalone use.
23
+
24
+ ## Usage
25
+
26
+ <pre><code className="language-html">{`<!DOCTYPE html>
27
+ <html dir="ltr" lang="en">
28
+
29
+ <head>
30
+ <meta charset="utf-8" />
31
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
32
+ <title>justifi-sezzle-payment-method</title>
33
+
34
+ <script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
35
+
36
+ <script
37
+ nomodule
38
+ src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
39
+ ></script>
40
+
41
+ <style>
42
+ /** These are the available parts for styling the component. */ ::part(text){' '}
43
+ {
44
+ // text styles
45
+ }
46
+ ::part(text-danger){' '}
47
+ {
48
+ // text danger styles
49
+ }
50
+ ::part(label){' '}
51
+ {
52
+ // label styles
53
+ }
54
+ ::part(input-radio){' '}
55
+ {
56
+ // input radio styles
57
+ }
58
+ ::part(input-radio-focused){' '}
59
+ {
60
+ // input radio focused styles
61
+ }
62
+ ::part(input-radio-checked){' '}
63
+ {
64
+ // input radio checked styles
65
+ }
66
+ ::part(input-radio-checked-focused){' '}
67
+ {
68
+ // input radio checked focused styles
69
+ }
70
+ ::part(input-radio-invalid){' '}
71
+ {
72
+ // input radio invalid styles
73
+ }
74
+ </style>
75
+
76
+ </head>
77
+
78
+ <body>
79
+ <justifi-modular-checkout auth-token="authToken" checkout-id="ch_123">
80
+ <justifi-sezzle-payment-method />
81
+ </justifi-modular-checkout>
82
+ </body>
83
+
84
+ <script>
85
+ (function() {
86
+ const modularCheckout = document.querySelector('justifi-modular-checkout');
87
+ const submitButton = document.querySelector('#submit-button');
88
+
89
+ submitButton.addEventListener('click', () => {
90
+ modularCheckout.submitCheckout();
91
+ });
92
+
93
+ modularCheckout.addEventListener('error-event', (event) => {
94
+ console.error(event.detail);
95
+ });
96
+
97
+ document.addEventListener('submit-event', (event) => {
98
+ console.log('Checkout completed successfully!', event.detail);
99
+ });
100
+ })();
101
+ </script>
102
+
103
+ </html>`}</code></pre>
104
+
105
+ ## Props, Events & Methods
106
+
107
+ <div
108
+ dangerouslySetInnerHTML={{
109
+ __html: PropsTable([
110
+ {
111
+ name: 'merchant-id',
112
+ type: 'string',
113
+ required: true,
114
+ description:
115
+ 'Sezzle merchant identifier configured in your JustiFi account.',
116
+ },
117
+ {
118
+ name: 'terms-url',
119
+ type: 'string',
120
+ description: 'Overrides the default Sezzle terms link.',
121
+ },
122
+ {
123
+ name: 'locale',
124
+ type: 'string',
125
+ defaultValue: 'en-US',
126
+ description: 'Controls copy for disclosures.',
127
+ },
128
+ ]),
129
+ }}
130
+ />
131
+
132
+ ### Events
133
+
134
+ - `sezzle-redirect`: Fires before redirecting the customer to Sezzle.
135
+ - `sezzle-returned`: Emits when the customer comes back to the checkout with approval data.
136
+ - `error`: Surfaces issues retrieving Sezzle offers or redirect URLs.
137
+
138
+ ### Public methods
139
+
140
+ 1. `begin()` – Trigger Sezzle flow programmatically (useful for custom list UI).
141
+
142
+ ## Theming & Layout
143
+
144
+ - Respect Sezzle's branding by keeping the provided colors and logos intact.
145
+
146
+ <div
147
+ dangerouslySetInnerHTML={{
148
+ __html: PartsTable([
149
+ {
150
+ name: 'text',
151
+ description: 'Text styles.',
152
+ },
153
+ {
154
+ name: 'text-danger',
155
+ description: 'Danger/error text styles.',
156
+ },
157
+ {
158
+ name: 'label',
159
+ description: 'Label styles.',
160
+ },
161
+ {
162
+ name: 'input-radio',
163
+ description: 'Radio input styles.',
164
+ },
165
+ {
166
+ name: 'input-radio-focused',
167
+ description: 'Radio input styles when focused.',
168
+ },
169
+ {
170
+ name: 'input-radio-checked',
171
+ description: 'Radio input styles when checked.',
172
+ },
173
+ {
174
+ name: 'input-radio-checked-focused',
175
+ description: 'Radio input styles when checked and focused.',
176
+ },
177
+ {
178
+ name: 'input-radio-invalid',
179
+ description: 'Radio input styles when invalid.',
180
+ },
181
+ ]),
182
+ }}
183
+ />
@@ -0,0 +1,111 @@
1
+ ---
2
+ id: modular-checkout/sub-components/summary
3
+ title: Modular Checkout Summary
4
+ description: Order summary block that lists line items, totals, and ancillary disclosures.
5
+ sidebar_position: 27
6
+ ---
7
+
8
+ import {
9
+ PropsTable,
10
+ PartsTable,
11
+ getWebcomponentsVersion,
12
+ } from '@justifi/webcomponents/docs/helpers';
13
+
14
+ ## Overview
15
+
16
+ Renders a summary of checkout details consisting of the checkout description and amount passed in the [create checkout API request](https://docs.justifi.tech/api-spec#tag/Checkouts/operation/CreateCheckout) as part of a checkout flow.
17
+
18
+ This component is **designed to be used within** the `justifi-modular-checkout` and **does not accept props directly**. Instead, it relies on the shared state passed through the Stencil Store, managed by the `justifi-modular-checkout` component.
19
+
20
+ **Authorization** and business context are also handled by `justifi-modular-checkout`, which manages authentication tokens and related configuration.
21
+
22
+ This component exposes **no public methods or properties** and is not intended for standalone use.
23
+
24
+ ## Usage
25
+
26
+ <pre><code className="language-html">{`<!DOCTYPE html>
27
+ <html dir="ltr" lang="en">
28
+
29
+ <head>
30
+ <meta charset="utf-8" />
31
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
32
+ <title>justifi-checkout-summary</title>
33
+
34
+ <script
35
+ type="module"
36
+ src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"
37
+ ></script>
38
+
39
+ <script
40
+ nomodule
41
+ src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
42
+ ></script>
43
+
44
+ <style>
45
+ /** These are the available parts for styling the component. */ ::part(text){' '}
46
+ {
47
+ // text styles
48
+ }
49
+ </style>
50
+
51
+ </head>
52
+
53
+ <body>
54
+ <justifi-modular-checkout
55
+ auth-token="authToken"
56
+ checkout-id="ch_123"
57
+ save-payment-method="true"
58
+ >
59
+ <justifi-checkout-summary />
60
+ </justifi-modular-checkout>
61
+ </body>
62
+ </html>`}</code></pre>
63
+
64
+ ## Props, Events & Methods
65
+
66
+ <div
67
+ dangerouslySetInnerHTML={{
68
+ __html: PropsTable([
69
+ {
70
+ name: 'checkout-id',
71
+ type: 'string',
72
+ required: true,
73
+ description: 'Determines the line items and totals to display.',
74
+ },
75
+ {
76
+ name: 'show-disclosures',
77
+ type: 'boolean',
78
+ defaultValue: 'false',
79
+ description:
80
+ 'Displays compliance copy (e.g., insurance terms, surcharges).',
81
+ },
82
+ {
83
+ name: 'show-line-item-icons',
84
+ type: 'boolean',
85
+ defaultValue: 'true',
86
+ description: 'Hide icons when you want an ultra-minimal summary.',
87
+ },
88
+ ]),
89
+ }}
90
+ />
91
+
92
+ ### Events
93
+
94
+ No custom events; summary listens to the parent checkout for updates automatically.
95
+
96
+ ### Public methods
97
+
98
+ 1. `refresh()` – Fetch updated totals (useful if you change the checkout server-side).
99
+
100
+ ## Theming & Layout
101
+
102
+ <div
103
+ dangerouslySetInnerHTML={{
104
+ __html: PartsTable([
105
+ {
106
+ name: 'text',
107
+ description: 'Text styles for the summary component.',
108
+ },
109
+ ]),
110
+ }}
111
+ />
@@ -0,0 +1,99 @@
1
+ ---
2
+ id: payment-facilitation/dispute-management/index
3
+ title: Dispute Management
4
+ description: Operator console for reviewing and responding to card disputes.
5
+ sidebar_position: 34
6
+ ---
7
+
8
+ import { PropsTable, PartsTable } from '@justifi/webcomponents/docs/helpers';
9
+
10
+ ## Overview
11
+
12
+ Component to render notification of disputed payments and allow platform to respond to dispute via form submission.
13
+
14
+ ## Usage
15
+
16
+ <pre>
17
+ <code className="language-html">{`<justifi-dispute-management
18
+ account-id="acc_123"
19
+ auth-token="wct_disputes"
20
+ dispute-id="dp_456"
21
+ />`}</code>
22
+ </pre>
23
+
24
+ ## Props, Events & Methods
25
+
26
+ <div
27
+ dangerouslySetInnerHTML={{
28
+ __html: PropsTable([
29
+ {
30
+ name: 'account-id',
31
+ type: 'string',
32
+ required: true,
33
+ description:
34
+ 'Authorizes access to disputes for a platform or merchant.',
35
+ },
36
+ {
37
+ name: 'auth-token',
38
+ type: 'string',
39
+ required: true,
40
+ description: 'Token with `write:disputes` scope.',
41
+ },
42
+ {
43
+ name: 'dispute-id',
44
+ type: 'string',
45
+ required: true,
46
+ description: 'Specific dispute to review/respond to.',
47
+ },
48
+ {
49
+ name: 'read-only',
50
+ type: 'boolean',
51
+ defaultValue: 'false',
52
+ description: 'Disable response actions when true.',
53
+ },
54
+ ]),
55
+ }}
56
+ />
57
+
58
+ ### Events
59
+
60
+ - `evidence-uploaded`: Fires when users add files or notes.
61
+ - `status-changed`: Indicates dispute submission or withdrawal.
62
+ - `error-event`: Captures upload or API issues.
63
+
64
+ ### Public methods
65
+
66
+ 1. `refresh()` – Reload in-progress disputes to reflect new deadlines or statuses.
67
+
68
+ ## Theming & Layout
69
+
70
+ <div
71
+ dangerouslySetInnerHTML={{
72
+ __html: PartsTable([
73
+ {
74
+ name: 'font-family',
75
+ description: 'Controls the font family for the component.',
76
+ },
77
+ {
78
+ name: 'color',
79
+ description: 'Controls the text color.',
80
+ },
81
+ {
82
+ name: 'background-color',
83
+ description: 'Controls the background color.',
84
+ },
85
+ {
86
+ name: 'button',
87
+ description: 'Button styles.',
88
+ },
89
+ {
90
+ name: 'button-secondary',
91
+ description: 'Secondary button styles.',
92
+ },
93
+ {
94
+ name: 'button-disabled',
95
+ description: 'Disabled button styles.',
96
+ },
97
+ ]),
98
+ }}
99
+ />
@@ -0,0 +1,21 @@
1
+ ---
2
+ id: payment-facilitation/index
3
+ title: Payment Facilitation
4
+ description: Core flows for capturing, refunding, and managing disputes.
5
+ ---
6
+
7
+ Build an end-to-end payment experience by combining these focused guides:
8
+
9
+ 1. [Unified Fintech Checkout™](./unified-fintech-checkout™/index) – the
10
+ full-stack checkout shell for authorization and capture.
11
+ 2. [Tokenize Payment Method](./tokenize-payment-method/index) – vault cards or
12
+ bank accounts for future use.
13
+ 3. [Refund Payment](./refund-payment/index) – return funds with audit-friendly
14
+ status updates.
15
+ 4. [Dispute Management](./dispute-management/index) – monitor chargebacks and
16
+ submit compelling evidence.
17
+
18
+ > Once your payment-facilitation configuration is live, tie it into
19
+ > `[Entities](../entities/index)` and `[Merchant Tools](../merchant-tools/index)`
20
+ > to keep back-office teams in sync.
21
+
@@ -0,0 +1,241 @@
1
+ ---
2
+ id: payment-facilitation/refund-payment/index
3
+ title: Refund Payment
4
+ description: Guided UI for issuing full or partial refunds with reason codes and audit trails.
5
+ sidebar_position: 33
6
+ ---
7
+
8
+ import {
9
+ PropsTable,
10
+ PartsTable,
11
+ getWebcomponentsVersion,
12
+ } from '@justifi/webcomponents/docs/helpers';
13
+
14
+ ## Overview
15
+
16
+ Component to render a form for partially or fully refunding a payment based on a provided payment ID.
17
+
18
+ ## Usage
19
+
20
+ <pre><code className="language-html">{`<!DOCTYPE html>
21
+ <html dir="ltr" lang="en">
22
+
23
+ <head>
24
+ <meta charset="utf-8" />
25
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
26
+ <title>justifi-refund-payment</title>
27
+
28
+ <script type="module" src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.esm.js"></script>
29
+
30
+ <script
31
+ nomodule
32
+ src="https://cdn.jsdelivr.net/npm/@justifi/webcomponents@${getWebcomponentsVersion()}/dist/webcomponents/webcomponents.js"
33
+ ></script>
34
+
35
+ <style>
36
+ ::part(font-family) {
37
+ font-family: georgia;
38
+ }
39
+
40
+ ::part(color) {
41
+ color: darkslategray;
42
+ }
43
+
44
+ ::part(background-color) {
45
+ background-color: transparent;
46
+ }
47
+
48
+ ::part(button) {
49
+ padding: 0.375rem 0.75rem;
50
+ font-size: 16px;
51
+ box-shadow: none;
52
+ border-radius: 0px;
53
+ line-height: 1.5;
54
+ text-transform: none;
55
+ }
56
+
57
+ ::part(button-disabled) {
58
+ opacity: 0.5;
59
+ }
60
+
61
+ ::part(input) {
62
+ border-color: #555;
63
+ border-width: 1px;
64
+ border-bottom-width: 1px;
65
+ border-left-width: 1px;
66
+ border-right-width: 1px;
67
+ border-top-width: 1px;
68
+ border-radius: 0;
69
+ border-style: solid;
70
+ box-shadow: none;
71
+ font-size: 1rem;
72
+ font-weight: normal;
73
+ line-height: 1.5;
74
+ padding: 0.375rem 0.75rem;
75
+ }
76
+
77
+ ::part(input-focused) {
78
+ border-color: #333;
79
+ box-shadow: 0 0 0 0.25rem rgba(0, 0, 0, 0.25);
80
+ }
81
+
82
+ ::part(input-invalid) {
83
+ border-color: #8a2a35;
84
+ box-shadow: 0 0 0 0.25rem rgba(244, 67, 54, 0.25);
85
+ }
86
+
87
+ ::part(input-invalid-and-focused) {
88
+ box-shadow: 0 0 0 0.25rem rgba(244, 67, 54, 0.25);
89
+ border-color: #8a2a35;
90
+ }
91
+
92
+ ::part(button-primary) {
93
+ color: #333;
94
+ background-color: transparent;
95
+ border-color: #333;
96
+ }
97
+
98
+ ::part(button-primary):hover {
99
+ background-color: rgba(0, 0, 0, .05);
100
+ border-color: #333;
101
+ color: #333;
102
+ }
103
+ </style>
104
+
105
+ </head>
106
+
107
+ <body>
108
+ <justifi-refund-payment
109
+ payment-id="payment_123"
110
+ account-id="acc_123"
111
+ auth-token="web-component-token"
112
+ hide-submit-button="true"
113
+ />
114
+
115
+ <!-- Optional external button - this is only needed if the built in button is hidden via the hide-submit-button prop
116
+ and the refund is submitted via provided refundPayment() method - see below. -->
117
+
118
+ <button id="submit-refund-button">Submit Refund</button>
119
+ </body>
120
+
121
+ <script>
122
+ (function () {
123
+ var refundForm = document.querySelector("justifi-refund-payment");
124
+
125
+ refundForm.addEventListener("submit-event", (event) => {
126
+ /* this event is raised when the server response is received */
127
+ console.log("server response received", event.detail.response);
128
+ });
129
+
130
+ refundForm.addEventListener("error-event", (event) => {
131
+ /* here is where you would handle the error */
132
+ console.error('error-event', event.detail);
133
+ });
134
+
135
+ /* manually call Refund with provided method, if built-in submit button is hidden */
136
+ document.getElementById("submit-refund-button").addEventListener("click", async () => {
137
+ const refundData = await refundForm.refundPayment();
138
+ console.log('Refund data', refundData);
139
+ });
140
+ })();
141
+ </script>
142
+
143
+ </html>`}</code></pre>
144
+
145
+ ## Props, Events & Methods
146
+
147
+ <div
148
+ dangerouslySetInnerHTML={{
149
+ __html: PropsTable([
150
+ {
151
+ name: 'account-id',
152
+ type: 'string',
153
+ required: true,
154
+ description:
155
+ 'Ensures refunds are scoped to the correct platform account.',
156
+ },
157
+ {
158
+ name: 'auth-token',
159
+ type: 'string',
160
+ required: true,
161
+ description: 'Token with `write:refunds` scope.',
162
+ },
163
+ {
164
+ name: 'payment-id',
165
+ type: 'string',
166
+ required: true,
167
+ description: 'Payment being refunded.',
168
+ },
169
+ {
170
+ name: 'max-amount',
171
+ type: 'string | number',
172
+ description:
173
+ 'Upper limit for partial refunds (defaults to remaining amount).',
174
+ },
175
+ {
176
+ name: 'default-reason',
177
+ type: 'string',
178
+ description: 'Preselects a refund reason code.',
179
+ },
180
+ ]),
181
+ }}
182
+ />
183
+
184
+ ### Events
185
+
186
+ - `submitted`: Emits when the refund is created; payload includes `refund_id` and amount.
187
+ - `error-event`: Fires when validation or network calls fail.
188
+
189
+ ### Public methods
190
+
191
+ 1. `submit()` – Trigger the refund flow (useful if the component is inside a modal with custom buttons).
192
+ 2. `focus()` – Move focus to the amount input.
193
+
194
+ ## Theming & Layout
195
+
196
+ <div
197
+ dangerouslySetInnerHTML={{
198
+ __html: PartsTable([
199
+ {
200
+ name: 'font-family',
201
+ description: 'Controls the font family for the component.',
202
+ },
203
+ {
204
+ name: 'color',
205
+ description: 'Controls the text color.',
206
+ },
207
+ {
208
+ name: 'background-color',
209
+ description: 'Controls the background color.',
210
+ },
211
+ {
212
+ name: 'button',
213
+ description: 'Button styles.',
214
+ },
215
+ {
216
+ name: 'button-disabled',
217
+ description: 'Disabled button styles.',
218
+ },
219
+ {
220
+ name: 'input',
221
+ description: 'Input field styles.',
222
+ },
223
+ {
224
+ name: 'input-focused',
225
+ description: 'Input styles when focused.',
226
+ },
227
+ {
228
+ name: 'input-invalid',
229
+ description: 'Input styles when invalid.',
230
+ },
231
+ {
232
+ name: 'input-invalid-and-focused',
233
+ description: 'Input styles when invalid and focused.',
234
+ },
235
+ {
236
+ name: 'button-primary',
237
+ description: 'Primary button styles.',
238
+ },
239
+ ]),
240
+ }}
241
+ />