@zendfi/sdk 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/dist/{chunk-3ACJUM6V.mjs → chunk-6CFQXFNR.mjs} +0 -1
- package/dist/{chunk-DAJL2Q36.mjs → chunk-B5LO34Q6.mjs} +20 -24
- package/dist/express.d.mts +1 -2
- package/dist/express.d.ts +1 -2
- package/dist/express.js +0 -1
- package/dist/express.mjs +1 -1
- package/dist/helpers/index.d.mts +0 -1
- package/dist/helpers/index.d.ts +0 -1
- package/dist/helpers/index.js +20 -24
- package/dist/helpers/index.mjs +1 -1
- package/dist/index.d.mts +14 -9
- package/dist/index.d.ts +14 -9
- package/dist/index.js +230 -85
- package/dist/index.mjs +212 -62
- package/dist/nextjs.d.mts +1 -2
- package/dist/nextjs.d.ts +1 -2
- package/dist/nextjs.js +0 -1
- package/dist/nextjs.mjs +1 -1
- package/dist/{webhook-handler-61UWBtDI.d.mts → webhook-handler-hUfWh-_Y.d.mts} +102 -8
- package/dist/{webhook-handler-61UWBtDI.d.ts → webhook-handler-hUfWh-_Y.d.ts} +102 -8
- package/package.json +1 -1
|
@@ -33,6 +33,12 @@ type SubscriptionStatus = 'active' | 'canceled' | 'past_due' | 'paused';
|
|
|
33
33
|
type InstallmentPlanStatus = 'active' | 'completed' | 'defaulted' | 'cancelled';
|
|
34
34
|
type InvoiceStatus = 'draft' | 'sent' | 'paid';
|
|
35
35
|
type SplitStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'refunded';
|
|
36
|
+
/**
|
|
37
|
+
* Recipient type discriminator for split recipients
|
|
38
|
+
* - 'wallet': Direct blockchain transfer to Solana wallet
|
|
39
|
+
* - 'bank_account': PAJ offramp (USDC → NGN → bank deposit)
|
|
40
|
+
*/
|
|
41
|
+
type RecipientType = 'wallet' | 'bank_account';
|
|
36
42
|
type WebhookEvent = 'payment.created' | 'payment.confirmed' | 'payment.failed' | 'payment.expired' | 'subscription.created' | 'subscription.activated' | 'subscription.canceled' | 'subscription.payment_failed' | 'split.completed' | 'split.failed' | 'installment.due' | 'installment.paid' | 'installment.late' | 'invoice.sent' | 'invoice.paid';
|
|
37
43
|
interface ZendFiConfig {
|
|
38
44
|
apiKey?: string;
|
|
@@ -44,13 +50,38 @@ interface ZendFiConfig {
|
|
|
44
50
|
idempotencyEnabled?: boolean;
|
|
45
51
|
debug?: boolean;
|
|
46
52
|
}
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Split recipient - base configuration shared across both types
|
|
55
|
+
*/
|
|
56
|
+
interface SplitRecipientBase {
|
|
57
|
+
recipient_type: RecipientType;
|
|
49
58
|
recipient_name?: string;
|
|
50
59
|
percentage?: number;
|
|
51
60
|
fixed_amount_usd?: number;
|
|
52
61
|
split_order?: number;
|
|
53
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Wallet recipient: direct blockchain transfer to Solana wallet
|
|
65
|
+
*/
|
|
66
|
+
interface WalletSplitRecipient extends SplitRecipientBase {
|
|
67
|
+
recipient_type: 'wallet';
|
|
68
|
+
recipient_wallet: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Bank account recipient: PAJ offramp (USDC → NGN → bank deposit)
|
|
72
|
+
*/
|
|
73
|
+
interface BankAccountSplitRecipient extends SplitRecipientBase {
|
|
74
|
+
recipient_type: 'bank_account';
|
|
75
|
+
recipient_account_name: string;
|
|
76
|
+
recipient_bank_account: string;
|
|
77
|
+
recipient_bank_id: string;
|
|
78
|
+
recipient_email: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Discriminated union type for split recipients
|
|
82
|
+
* Use the `recipient_type` field to determine which fields are available
|
|
83
|
+
*/
|
|
84
|
+
type SplitRecipient = WalletSplitRecipient | BankAccountSplitRecipient;
|
|
54
85
|
interface CreatePaymentRequest {
|
|
55
86
|
amount: number;
|
|
56
87
|
currency?: Currency;
|
|
@@ -61,6 +92,21 @@ interface CreatePaymentRequest {
|
|
|
61
92
|
metadata?: Record<string, any>;
|
|
62
93
|
split_recipients?: SplitRecipient[];
|
|
63
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Customer Object for Pre-filled Payment Links
|
|
97
|
+
*/
|
|
98
|
+
interface PaymentLinkCustomerObject {
|
|
99
|
+
email: string;
|
|
100
|
+
name?: string;
|
|
101
|
+
phone?: string;
|
|
102
|
+
company?: string;
|
|
103
|
+
billing_address_line1?: string;
|
|
104
|
+
billing_address_line2?: string;
|
|
105
|
+
billing_city?: string;
|
|
106
|
+
billing_state?: string;
|
|
107
|
+
billing_postal_code?: string;
|
|
108
|
+
billing_country?: string;
|
|
109
|
+
}
|
|
64
110
|
/**
|
|
65
111
|
* Payment Link - Shareable checkout links
|
|
66
112
|
*/
|
|
@@ -73,6 +119,32 @@ interface CreatePaymentLinkRequest {
|
|
|
73
119
|
expires_at?: string;
|
|
74
120
|
metadata?: Record<string, any>;
|
|
75
121
|
onramp?: boolean;
|
|
122
|
+
/** Original NGN amount for PAJ exact conversion (if using a NGN-denominated link) */
|
|
123
|
+
amount_ngn?: number;
|
|
124
|
+
/**
|
|
125
|
+
* If true, a service charge of max(₦30, ceil(2.5% × amount_ngn)) is added on top
|
|
126
|
+
* and shown transparently to the payer on checkout.
|
|
127
|
+
* If false/absent, no service charge is applied (merchant absorbs PAJ slippage).
|
|
128
|
+
* Only relevant when `onramp` is true.
|
|
129
|
+
*/
|
|
130
|
+
payer_service_charge?: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* If true, checkout shows an expanded customer details form before payment.
|
|
133
|
+
*/
|
|
134
|
+
collect_customer_info?: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Optional pre-filled customer object. When present:
|
|
137
|
+
* - the checkout page skips email/info collection and shows "Continue to Pay"
|
|
138
|
+
* - `max_uses` is automatically forced to 1 (single-use link)
|
|
139
|
+
* - the customer data is stored on the link and forwarded to the onramp flow
|
|
140
|
+
*/
|
|
141
|
+
customer?: PaymentLinkCustomerObject;
|
|
142
|
+
/**
|
|
143
|
+
* Optional split recipients for this link. When present, all payments created from this link
|
|
144
|
+
* will automatically apply the splits during settlement. Supports both wallet (direct blockchain transfer)
|
|
145
|
+
* and bank_account (PAJ offramp: USDC → NGN → bank) recipient types.
|
|
146
|
+
*/
|
|
147
|
+
split_recipients?: SplitRecipient[];
|
|
76
148
|
}
|
|
77
149
|
interface PaymentLink {
|
|
78
150
|
link_code: string;
|
|
@@ -96,6 +168,22 @@ interface PaymentLink {
|
|
|
96
168
|
uses_count?: number;
|
|
97
169
|
is_active?: boolean;
|
|
98
170
|
onramp?: boolean;
|
|
171
|
+
/** Whether this link applies a service charge to the payer (onramp only) */
|
|
172
|
+
payer_service_charge?: boolean;
|
|
173
|
+
/** Whether the checkout page collects full customer details before payment */
|
|
174
|
+
collect_customer_info?: boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Present only on customer-scoped links (created with a `customer` object).
|
|
177
|
+
* Forwarded to the checkout and onramp flow so no manual input is needed.
|
|
178
|
+
*/
|
|
179
|
+
customer_data?: PaymentLinkCustomerObject;
|
|
180
|
+
/**
|
|
181
|
+
* Split recipients associated with this payment link.
|
|
182
|
+
* When split_recipients are present, all payments created from this link
|
|
183
|
+
* will automatically apply the splits. Supports both wallet (direct blockchain transfer)
|
|
184
|
+
* and bank_account (PAJ offramp: USDC → NGN → bank) recipient types.
|
|
185
|
+
*/
|
|
186
|
+
split_recipients?: SplitRecipient[];
|
|
99
187
|
}
|
|
100
188
|
interface Payment {
|
|
101
189
|
id: string;
|
|
@@ -115,7 +203,17 @@ interface Payment {
|
|
|
115
203
|
confirmed_at?: string;
|
|
116
204
|
transaction_signature?: string;
|
|
117
205
|
metadata?: Record<string, any>;
|
|
118
|
-
|
|
206
|
+
/**
|
|
207
|
+
* Split recipient statuses (if splits were applied to this payment).
|
|
208
|
+
* Includes split ID, recipient type, amount, and settlement status.
|
|
209
|
+
*/
|
|
210
|
+
split_statuses?: Array<{
|
|
211
|
+
split_id: string;
|
|
212
|
+
recipient_type: RecipientType;
|
|
213
|
+
amount_usd: number;
|
|
214
|
+
status: SplitStatus;
|
|
215
|
+
transaction_signature?: string;
|
|
216
|
+
}>;
|
|
119
217
|
created_at?: string;
|
|
120
218
|
updated_at?: string;
|
|
121
219
|
}
|
|
@@ -317,10 +415,6 @@ type WebhookHandlers = Partial<{
|
|
|
317
415
|
'installment.due': WebhookEventHandler;
|
|
318
416
|
'installment.paid': WebhookEventHandler;
|
|
319
417
|
'installment.late': WebhookEventHandler;
|
|
320
|
-
'escrow.funded': WebhookEventHandler;
|
|
321
|
-
'escrow.released': WebhookEventHandler;
|
|
322
|
-
'escrow.refunded': WebhookEventHandler;
|
|
323
|
-
'escrow.disputed': WebhookEventHandler;
|
|
324
418
|
'invoice.sent': WebhookEventHandler;
|
|
325
419
|
'invoice.paid': WebhookEventHandler;
|
|
326
420
|
}>;
|
|
@@ -336,4 +430,4 @@ interface WebhookResult {
|
|
|
336
430
|
}
|
|
337
431
|
declare function processWebhook(a: any, b?: any, c?: any): Promise<WebhookResult>;
|
|
338
432
|
|
|
339
|
-
export { type ApiKeyMode as A, type Brand as B, type CreatePaymentRequest as C, type PaymentStatus as D, type Environment as E, type SubscriptionStatus as F, type InstallmentPlanStatus as G, type InvoiceStatus as H, type InstallmentPlan as I, type SplitStatus as J, type WebhookEvent as K, type
|
|
433
|
+
export { type InvoiceLineItem as $, type ApiKeyMode as A, type Brand as B, type CreatePaymentRequest as C, type PaymentStatus as D, type Environment as E, type SubscriptionStatus as F, type InstallmentPlanStatus as G, type InvoiceStatus as H, type InstallmentPlan as I, type SplitStatus as J, type WebhookEvent as K, type SplitRecipientBase as L, type MerchantId as M, type WalletSplitRecipient as N, type BankAccountSplitRecipient as O, type Payment as P, type SplitRecipient as Q, type RecipientType as R, type SubscriptionPlan as S, type PaymentLinkCustomerObject as T, type ListPaymentsRequest as U, type VerifyWebhookRequest as V, type WebhookHandlerConfig as W, type PaginatedResponse as X, type InstallmentScheduleItem as Y, type ZendFiConfig as Z, type CreateInstallmentPlanResponse as _, type WebhookHandlers as a, type CreateSubscriptionPlanRequest as b, type CreateSubscriptionRequest as c, type Subscription as d, type CreatePaymentLinkRequest as e, type PaymentLink as f, type CreateInstallmentPlanRequest as g, type CreateInvoiceRequest as h, type Invoice as i, type WebhookPayload as j, type WebhookResult as k, type WebhookEventHandler as l, type PaymentId as m, type InvoiceId as n, type SubscriptionId as o, processWebhook as p, type InstallmentPlanId as q, type PaymentLinkCode as r, asPaymentId as s, asMerchantId as t, asInvoiceId as u, asSubscriptionId as v, asInstallmentPlanId as w, asPaymentLinkCode as x, type Currency as y, type PaymentToken as z };
|
|
@@ -33,6 +33,12 @@ type SubscriptionStatus = 'active' | 'canceled' | 'past_due' | 'paused';
|
|
|
33
33
|
type InstallmentPlanStatus = 'active' | 'completed' | 'defaulted' | 'cancelled';
|
|
34
34
|
type InvoiceStatus = 'draft' | 'sent' | 'paid';
|
|
35
35
|
type SplitStatus = 'pending' | 'processing' | 'completed' | 'failed' | 'refunded';
|
|
36
|
+
/**
|
|
37
|
+
* Recipient type discriminator for split recipients
|
|
38
|
+
* - 'wallet': Direct blockchain transfer to Solana wallet
|
|
39
|
+
* - 'bank_account': PAJ offramp (USDC → NGN → bank deposit)
|
|
40
|
+
*/
|
|
41
|
+
type RecipientType = 'wallet' | 'bank_account';
|
|
36
42
|
type WebhookEvent = 'payment.created' | 'payment.confirmed' | 'payment.failed' | 'payment.expired' | 'subscription.created' | 'subscription.activated' | 'subscription.canceled' | 'subscription.payment_failed' | 'split.completed' | 'split.failed' | 'installment.due' | 'installment.paid' | 'installment.late' | 'invoice.sent' | 'invoice.paid';
|
|
37
43
|
interface ZendFiConfig {
|
|
38
44
|
apiKey?: string;
|
|
@@ -44,13 +50,38 @@ interface ZendFiConfig {
|
|
|
44
50
|
idempotencyEnabled?: boolean;
|
|
45
51
|
debug?: boolean;
|
|
46
52
|
}
|
|
47
|
-
|
|
48
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Split recipient - base configuration shared across both types
|
|
55
|
+
*/
|
|
56
|
+
interface SplitRecipientBase {
|
|
57
|
+
recipient_type: RecipientType;
|
|
49
58
|
recipient_name?: string;
|
|
50
59
|
percentage?: number;
|
|
51
60
|
fixed_amount_usd?: number;
|
|
52
61
|
split_order?: number;
|
|
53
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Wallet recipient: direct blockchain transfer to Solana wallet
|
|
65
|
+
*/
|
|
66
|
+
interface WalletSplitRecipient extends SplitRecipientBase {
|
|
67
|
+
recipient_type: 'wallet';
|
|
68
|
+
recipient_wallet: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Bank account recipient: PAJ offramp (USDC → NGN → bank deposit)
|
|
72
|
+
*/
|
|
73
|
+
interface BankAccountSplitRecipient extends SplitRecipientBase {
|
|
74
|
+
recipient_type: 'bank_account';
|
|
75
|
+
recipient_account_name: string;
|
|
76
|
+
recipient_bank_account: string;
|
|
77
|
+
recipient_bank_id: string;
|
|
78
|
+
recipient_email: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Discriminated union type for split recipients
|
|
82
|
+
* Use the `recipient_type` field to determine which fields are available
|
|
83
|
+
*/
|
|
84
|
+
type SplitRecipient = WalletSplitRecipient | BankAccountSplitRecipient;
|
|
54
85
|
interface CreatePaymentRequest {
|
|
55
86
|
amount: number;
|
|
56
87
|
currency?: Currency;
|
|
@@ -61,6 +92,21 @@ interface CreatePaymentRequest {
|
|
|
61
92
|
metadata?: Record<string, any>;
|
|
62
93
|
split_recipients?: SplitRecipient[];
|
|
63
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Customer Object for Pre-filled Payment Links
|
|
97
|
+
*/
|
|
98
|
+
interface PaymentLinkCustomerObject {
|
|
99
|
+
email: string;
|
|
100
|
+
name?: string;
|
|
101
|
+
phone?: string;
|
|
102
|
+
company?: string;
|
|
103
|
+
billing_address_line1?: string;
|
|
104
|
+
billing_address_line2?: string;
|
|
105
|
+
billing_city?: string;
|
|
106
|
+
billing_state?: string;
|
|
107
|
+
billing_postal_code?: string;
|
|
108
|
+
billing_country?: string;
|
|
109
|
+
}
|
|
64
110
|
/**
|
|
65
111
|
* Payment Link - Shareable checkout links
|
|
66
112
|
*/
|
|
@@ -73,6 +119,32 @@ interface CreatePaymentLinkRequest {
|
|
|
73
119
|
expires_at?: string;
|
|
74
120
|
metadata?: Record<string, any>;
|
|
75
121
|
onramp?: boolean;
|
|
122
|
+
/** Original NGN amount for PAJ exact conversion (if using a NGN-denominated link) */
|
|
123
|
+
amount_ngn?: number;
|
|
124
|
+
/**
|
|
125
|
+
* If true, a service charge of max(₦30, ceil(2.5% × amount_ngn)) is added on top
|
|
126
|
+
* and shown transparently to the payer on checkout.
|
|
127
|
+
* If false/absent, no service charge is applied (merchant absorbs PAJ slippage).
|
|
128
|
+
* Only relevant when `onramp` is true.
|
|
129
|
+
*/
|
|
130
|
+
payer_service_charge?: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* If true, checkout shows an expanded customer details form before payment.
|
|
133
|
+
*/
|
|
134
|
+
collect_customer_info?: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Optional pre-filled customer object. When present:
|
|
137
|
+
* - the checkout page skips email/info collection and shows "Continue to Pay"
|
|
138
|
+
* - `max_uses` is automatically forced to 1 (single-use link)
|
|
139
|
+
* - the customer data is stored on the link and forwarded to the onramp flow
|
|
140
|
+
*/
|
|
141
|
+
customer?: PaymentLinkCustomerObject;
|
|
142
|
+
/**
|
|
143
|
+
* Optional split recipients for this link. When present, all payments created from this link
|
|
144
|
+
* will automatically apply the splits during settlement. Supports both wallet (direct blockchain transfer)
|
|
145
|
+
* and bank_account (PAJ offramp: USDC → NGN → bank) recipient types.
|
|
146
|
+
*/
|
|
147
|
+
split_recipients?: SplitRecipient[];
|
|
76
148
|
}
|
|
77
149
|
interface PaymentLink {
|
|
78
150
|
link_code: string;
|
|
@@ -96,6 +168,22 @@ interface PaymentLink {
|
|
|
96
168
|
uses_count?: number;
|
|
97
169
|
is_active?: boolean;
|
|
98
170
|
onramp?: boolean;
|
|
171
|
+
/** Whether this link applies a service charge to the payer (onramp only) */
|
|
172
|
+
payer_service_charge?: boolean;
|
|
173
|
+
/** Whether the checkout page collects full customer details before payment */
|
|
174
|
+
collect_customer_info?: boolean;
|
|
175
|
+
/**
|
|
176
|
+
* Present only on customer-scoped links (created with a `customer` object).
|
|
177
|
+
* Forwarded to the checkout and onramp flow so no manual input is needed.
|
|
178
|
+
*/
|
|
179
|
+
customer_data?: PaymentLinkCustomerObject;
|
|
180
|
+
/**
|
|
181
|
+
* Split recipients associated with this payment link.
|
|
182
|
+
* When split_recipients are present, all payments created from this link
|
|
183
|
+
* will automatically apply the splits. Supports both wallet (direct blockchain transfer)
|
|
184
|
+
* and bank_account (PAJ offramp: USDC → NGN → bank) recipient types.
|
|
185
|
+
*/
|
|
186
|
+
split_recipients?: SplitRecipient[];
|
|
99
187
|
}
|
|
100
188
|
interface Payment {
|
|
101
189
|
id: string;
|
|
@@ -115,7 +203,17 @@ interface Payment {
|
|
|
115
203
|
confirmed_at?: string;
|
|
116
204
|
transaction_signature?: string;
|
|
117
205
|
metadata?: Record<string, any>;
|
|
118
|
-
|
|
206
|
+
/**
|
|
207
|
+
* Split recipient statuses (if splits were applied to this payment).
|
|
208
|
+
* Includes split ID, recipient type, amount, and settlement status.
|
|
209
|
+
*/
|
|
210
|
+
split_statuses?: Array<{
|
|
211
|
+
split_id: string;
|
|
212
|
+
recipient_type: RecipientType;
|
|
213
|
+
amount_usd: number;
|
|
214
|
+
status: SplitStatus;
|
|
215
|
+
transaction_signature?: string;
|
|
216
|
+
}>;
|
|
119
217
|
created_at?: string;
|
|
120
218
|
updated_at?: string;
|
|
121
219
|
}
|
|
@@ -317,10 +415,6 @@ type WebhookHandlers = Partial<{
|
|
|
317
415
|
'installment.due': WebhookEventHandler;
|
|
318
416
|
'installment.paid': WebhookEventHandler;
|
|
319
417
|
'installment.late': WebhookEventHandler;
|
|
320
|
-
'escrow.funded': WebhookEventHandler;
|
|
321
|
-
'escrow.released': WebhookEventHandler;
|
|
322
|
-
'escrow.refunded': WebhookEventHandler;
|
|
323
|
-
'escrow.disputed': WebhookEventHandler;
|
|
324
418
|
'invoice.sent': WebhookEventHandler;
|
|
325
419
|
'invoice.paid': WebhookEventHandler;
|
|
326
420
|
}>;
|
|
@@ -336,4 +430,4 @@ interface WebhookResult {
|
|
|
336
430
|
}
|
|
337
431
|
declare function processWebhook(a: any, b?: any, c?: any): Promise<WebhookResult>;
|
|
338
432
|
|
|
339
|
-
export { type ApiKeyMode as A, type Brand as B, type CreatePaymentRequest as C, type PaymentStatus as D, type Environment as E, type SubscriptionStatus as F, type InstallmentPlanStatus as G, type InvoiceStatus as H, type InstallmentPlan as I, type SplitStatus as J, type WebhookEvent as K, type
|
|
433
|
+
export { type InvoiceLineItem as $, type ApiKeyMode as A, type Brand as B, type CreatePaymentRequest as C, type PaymentStatus as D, type Environment as E, type SubscriptionStatus as F, type InstallmentPlanStatus as G, type InvoiceStatus as H, type InstallmentPlan as I, type SplitStatus as J, type WebhookEvent as K, type SplitRecipientBase as L, type MerchantId as M, type WalletSplitRecipient as N, type BankAccountSplitRecipient as O, type Payment as P, type SplitRecipient as Q, type RecipientType as R, type SubscriptionPlan as S, type PaymentLinkCustomerObject as T, type ListPaymentsRequest as U, type VerifyWebhookRequest as V, type WebhookHandlerConfig as W, type PaginatedResponse as X, type InstallmentScheduleItem as Y, type ZendFiConfig as Z, type CreateInstallmentPlanResponse as _, type WebhookHandlers as a, type CreateSubscriptionPlanRequest as b, type CreateSubscriptionRequest as c, type Subscription as d, type CreatePaymentLinkRequest as e, type PaymentLink as f, type CreateInstallmentPlanRequest as g, type CreateInvoiceRequest as h, type Invoice as i, type WebhookPayload as j, type WebhookResult as k, type WebhookEventHandler as l, type PaymentId as m, type InvoiceId as n, type SubscriptionId as o, processWebhook as p, type InstallmentPlanId as q, type PaymentLinkCode as r, asPaymentId as s, asMerchantId as t, asInvoiceId as u, asSubscriptionId as v, asInstallmentPlanId as w, asPaymentLinkCode as x, type Currency as y, type PaymentToken as z };
|