@payclave/sdk-server 0.1.1 → 0.2.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/dist/index.d.cts CHANGED
@@ -3,7 +3,10 @@ import { Buffer } from 'node:buffer';
3
3
  type PayclaveMode = "test" | "live" | (string & {});
4
4
  type PayclaveInvoiceStatus = "pending" | "processing" | "paid" | "underpaid" | "overpaid" | "expired" | "failed" | "cancelled" | (string & {});
5
5
  type PayclavePaymentStatus = "detected" | "validating" | "confirmed" | "failed" | "duplicate" | "underpaid" | "overpaid" | (string & {});
6
- declare const PAYCLAVE_WEBHOOK_EVENT_TYPES: readonly ["invoice.paid", "invoice.expired", "payment.failed", "payment.underpaid", "payment.overpaid"];
6
+ type PayclaveInvoiceCollectionState = "draft" | "open" | "past_due" | "partially_paid" | "paid" | "void" | "uncollectible" | (string & {});
7
+ type PayclaveMigrationState = "current" | "review_required" | (string & {});
8
+ type PayclaveSourceType = "api" | "dashboard" | "payment_link" | "sdk" | "legacy" | (string & {});
9
+ declare const PAYCLAVE_WEBHOOK_EVENT_TYPES: readonly ["invoice.issued", "invoice.paid", "invoice.partially_paid", "invoice.past_due", "invoice.overpaid", "invoice.voided", "invoice.uncollectible", "invoice.refund_recorded", "invoice.payment_received_after_void", "invoice.payment_received_after_uncollectible", "invoice.expired", "payment_link.completed", "payment_link.expired", "payment.failed", "payment.underpaid", "payment.overpaid"];
7
10
  type PayclaveWebhookEventType = (typeof PAYCLAVE_WEBHOOK_EVENT_TYPES)[number];
8
11
  type PayclaveWebhookDeliveryStatus = "pending" | "delivering" | "delivered" | "retry_scheduled" | "failed" | (string & {});
9
12
  type PayclaveMetadata = Record<string, unknown>;
@@ -17,6 +20,20 @@ type PayclaveServerClientOptions = {
17
20
  type PayclaveRequestOptions = {
18
21
  signal?: AbortSignal;
19
22
  };
23
+ type PayclaveInvoicePDF = {
24
+ bytes: Uint8Array;
25
+ contentType: "application/pdf";
26
+ filename: string;
27
+ requestId: string | null;
28
+ };
29
+ type PayclaveReconciliationDownload = {
30
+ stream: ReadableStream<Uint8Array>;
31
+ contentType: "application/zip";
32
+ filename: string;
33
+ byteSize: number | null;
34
+ sha256: string | null;
35
+ requestId: string | null;
36
+ };
20
37
  type CreateCheckoutSessionInput = PayclaveRequestOptions & {
21
38
  amount: string;
22
39
  customerEmail?: string;
@@ -34,6 +51,168 @@ type CreateInvoiceInput = PayclaveRequestOptions & {
34
51
  expiresInMinutes?: number;
35
52
  idempotencyKey?: string;
36
53
  };
54
+ type PayclaveInvoiceCustomer = {
55
+ name?: string;
56
+ email?: string;
57
+ company?: string;
58
+ billingAddress?: string | null;
59
+ };
60
+ type PayclaveInvoiceLineInput = {
61
+ id?: string;
62
+ description: string;
63
+ sku?: string | null;
64
+ quantity: string;
65
+ unitAmount: string;
66
+ };
67
+ type PayclaveInvoiceDiscountInput = {
68
+ type: "fixed";
69
+ amount: string;
70
+ percentage?: never;
71
+ } | {
72
+ type: "percentage";
73
+ percentage: string;
74
+ amount?: never;
75
+ };
76
+ type PayclaveInvoiceTaxInput = {
77
+ id?: string;
78
+ label: string;
79
+ jurisdiction?: string | null;
80
+ registrationReference?: string | null;
81
+ amount: string;
82
+ };
83
+ type PayclaveInvoiceReminderSchedule = {
84
+ enabled: boolean;
85
+ daysBeforeDue?: number[];
86
+ onDue?: boolean;
87
+ daysAfterDue?: number[];
88
+ };
89
+ type PayclaveInvoiceDraftFields = {
90
+ customer: PayclaveInvoiceCustomer;
91
+ lines: PayclaveInvoiceLineInput[];
92
+ discount?: PayclaveInvoiceDiscountInput | null;
93
+ taxes?: PayclaveInvoiceTaxInput[];
94
+ dueAt?: string | null;
95
+ paymentTerms?: string;
96
+ memo?: string;
97
+ footer?: string;
98
+ purchaseOrderNumber?: string;
99
+ externalReference?: string | null;
100
+ currencyCode?: string;
101
+ metadata?: PayclaveMetadata;
102
+ successUrl?: string | null;
103
+ cancelUrl?: string | null;
104
+ checkoutExpiresInMinutes?: number;
105
+ reminderSchedule?: PayclaveInvoiceReminderSchedule;
106
+ };
107
+ type CreateInvoiceDraftInput = PayclaveRequestOptions & PayclaveInvoiceDraftFields & {
108
+ idempotencyKey?: string;
109
+ };
110
+ type UpdateInvoiceDraftInput = PayclaveRequestOptions & PayclaveInvoiceDraftFields & {
111
+ version: number;
112
+ idempotencyKey?: string;
113
+ };
114
+ type IssueInvoiceInput = PayclaveRequestOptions & {
115
+ version: number;
116
+ send?: boolean;
117
+ idempotencyKey?: string;
118
+ };
119
+ type PayclaveInvoiceDelivery = {
120
+ id: string;
121
+ type: "issue" | "send" | "reminder" | (string & {});
122
+ recipient: string;
123
+ templateVersion: string;
124
+ status: string;
125
+ providerMessageId: string | null;
126
+ lastError: string | null;
127
+ scheduledFor: string;
128
+ sentAt: string | null;
129
+ createdAt: string;
130
+ reminderKey: string | null;
131
+ };
132
+ type PayclaveInvoiceActivityEvent = {
133
+ id: string;
134
+ action: string;
135
+ actorType: string;
136
+ actorId: string;
137
+ changes: Record<string, unknown>;
138
+ createdAt: string;
139
+ };
140
+ type InvoiceActionInput = PayclaveRequestOptions & {
141
+ reason?: string;
142
+ idempotencyKey?: string;
143
+ };
144
+ type CreateInvoiceCheckoutSessionInput = PayclaveRequestOptions & {
145
+ idempotencyKey?: string;
146
+ };
147
+ type RecordInvoiceRefundReferenceInput = PayclaveRequestOptions & {
148
+ paymentId: string;
149
+ amount: string;
150
+ reason: string;
151
+ externalTransactionHash: string;
152
+ chainId: number;
153
+ tokenContract: string;
154
+ idempotencyKey?: string;
155
+ };
156
+ type ListInvoicesInput = PayclaveRequestOptions & {
157
+ limit?: number;
158
+ startingAfter?: string;
159
+ collectionState?: PayclaveInvoiceCollectionState;
160
+ };
161
+ type PayclavePaymentLinkStatus = "draft" | "active" | "paused" | "completed" | "expired" | "archived" | (string & {});
162
+ type PayclavePaymentLinkAmountType = "fixed" | "customer_entered";
163
+ type PayclavePaymentLinkUsageType = "single_use" | "reusable";
164
+ type PayclavePaymentLinkCollect = {
165
+ email: boolean;
166
+ name: boolean;
167
+ reference: boolean;
168
+ };
169
+ type PayclavePaymentLinkFields = {
170
+ mode?: "test" | "live";
171
+ title: string;
172
+ description?: string;
173
+ amountType: PayclavePaymentLinkAmountType;
174
+ amount?: string;
175
+ minimumAmount?: string;
176
+ maximumAmount?: string;
177
+ currencyCode?: "USDC" | "USDT";
178
+ usageType?: PayclavePaymentLinkUsageType;
179
+ activeAt?: string | null;
180
+ expiresAt?: string | null;
181
+ collect?: Partial<PayclavePaymentLinkCollect>;
182
+ referencePrefix?: string;
183
+ successUrl?: string | null;
184
+ cancelUrl?: string | null;
185
+ successMessage?: string;
186
+ metadata?: PayclaveMetadata;
187
+ };
188
+ type CreatePaymentLinkInput = PayclaveRequestOptions & PayclavePaymentLinkFields & {
189
+ idempotencyKey?: string;
190
+ };
191
+ type UpdatePaymentLinkInput = PayclaveRequestOptions & PayclavePaymentLinkFields & {
192
+ version: number;
193
+ idempotencyKey?: string;
194
+ };
195
+ type PaymentLinkActionInput = PayclaveRequestOptions & {
196
+ idempotencyKey?: string;
197
+ };
198
+ type ReleasePaymentLinkReservationInput = PayclaveRequestOptions & {
199
+ acknowledgeLatePaymentRisk: true;
200
+ idempotencyKey?: string;
201
+ };
202
+ type ListPaymentLinksInput = PayclaveRequestOptions & {
203
+ limit?: number;
204
+ startingAfter?: string;
205
+ status?: PayclavePaymentLinkStatus;
206
+ amountType?: PayclavePaymentLinkAmountType;
207
+ usageType?: PayclavePaymentLinkUsageType;
208
+ currencyCode?: "USDC" | "USDT";
209
+ search?: string;
210
+ createdFrom?: string;
211
+ createdTo?: string;
212
+ };
213
+ type ListPaymentLinkPaymentsInput = PayclaveRequestOptions & {
214
+ limit?: number;
215
+ };
37
216
  type CreateWebhookEndpointInput = PayclaveRequestOptions & {
38
217
  url: string;
39
218
  eventTypes?: PayclaveWebhookEventType[];
@@ -44,17 +223,186 @@ type CreateTestWebhookInput = PayclaveRequestOptions & {
44
223
  };
45
224
  type ListWebhookDeliveriesInput = PayclaveRequestOptions & {
46
225
  limit?: number;
226
+ endpointId?: string;
227
+ eventType?: PayclaveWebhookEventType;
228
+ status?: PayclaveWebhookDeliveryStatus;
229
+ createdFrom?: string;
230
+ createdTo?: string;
231
+ replayStatus?: "original" | "replay";
232
+ responseFamily?: "2xx" | "3xx" | "4xx" | "5xx" | "network";
233
+ };
234
+ type ReplayWebhookDeliveryInput = PayclaveRequestOptions & {
235
+ idempotencyKey: string;
236
+ };
237
+ type UpdateWebhookEndpointInput = PayclaveRequestOptions & {
238
+ url?: string;
239
+ enabled?: boolean;
240
+ eventTypes?: PayclaveWebhookEventType[];
241
+ alertsEnabled?: boolean;
242
+ alertThreshold?: number;
243
+ recoveryAlertsEnabled?: boolean;
244
+ idempotencyKey: string;
245
+ };
246
+ type WebhookEndpointActionInput = PayclaveRequestOptions & {
247
+ idempotencyKey: string;
248
+ };
249
+ type ListWebhookIncidentsInput = PayclaveRequestOptions & {
250
+ status?: "open" | "resolved";
251
+ };
252
+ declare const PAYCLAVE_RECONCILIATION_SCHEMA_VERSION: "2026-08-29.v1";
253
+ type PayclaveReconciliationDateBasis = "invoice_created" | "invoice_issued" | "invoice_paid" | "payment_confirmed" | "transaction_observed";
254
+ type GetReconciliationSummaryInput = PayclaveRequestOptions & {
255
+ dateBasis: PayclaveReconciliationDateBasis;
256
+ from: string;
257
+ to: string;
258
+ timezone?: string;
259
+ invoiceStatuses?: PayclaveInvoiceStatus[];
260
+ paymentStatuses?: PayclavePaymentStatus[];
261
+ settlementTokens?: Array<"USDC" | "USDT" | (string & {})>;
262
+ exceptionOnly?: boolean;
263
+ };
264
+ type PayclaveReconciliationTokenSummary = {
265
+ tokenSymbol: string;
266
+ tokenContract: string;
267
+ chainId: number;
268
+ invoiceCount: number;
269
+ paymentCount: number;
270
+ exceptionCount: number;
271
+ invoiceTotal: string;
272
+ customerGrossPaid: string;
273
+ platformFeeExpected: string;
274
+ platformFeeCollected: string;
275
+ expectedMerchantSettlement: string;
276
+ merchantSettled: string;
277
+ outstanding: string;
278
+ overpayment: string;
279
+ nominalStablecoinUsd: string;
280
+ invoiceStatusCounts: Record<string, number>;
281
+ paymentStatusCounts: Record<string, number>;
282
+ };
283
+ type PayclaveReconciliationSummary = {
284
+ schemaVersion: string;
285
+ dateBasis: PayclaveReconciliationDateBasis;
286
+ from: string;
287
+ to: string;
288
+ cutoffAt: string;
289
+ timezone: string;
290
+ rowCounts: Record<string, number>;
291
+ summaryByToken: PayclaveReconciliationTokenSummary[];
292
+ exceptions: Array<{
293
+ invoiceId: string;
294
+ invoiceNumber: string;
295
+ state: string;
296
+ reasonCodes: string[];
297
+ tokenSymbol: string;
298
+ customerGrossPaid: string;
299
+ outstanding: string;
300
+ }>;
301
+ warnings: string[];
302
+ };
303
+ type PayclaveReconciliationSchema = {
304
+ schemaVersion: string;
305
+ formats: string[];
306
+ dateBases: PayclaveReconciliationDateBasis[];
307
+ maximumRangeDays: number;
308
+ rangeEnd: "exclusive" | (string & {});
309
+ retention: string;
310
+ files: Array<{
311
+ name: string;
312
+ description: string;
313
+ columns: Array<{
314
+ name: string;
315
+ type: string;
316
+ description: string;
317
+ pii: boolean;
318
+ }>;
319
+ }>;
320
+ stateRules: Array<{
321
+ state: string;
322
+ description: string;
323
+ }>;
324
+ };
325
+ type PayclaveReconciliationExportStatus = "queued" | "running" | "ready" | "failed" | "cancelled" | "expired" | (string & {});
326
+ type PayclaveReconciliationFilters = {
327
+ from: string;
328
+ to: string;
329
+ invoiceStatuses?: PayclaveInvoiceStatus[];
330
+ paymentStatuses?: PayclavePaymentStatus[];
331
+ settlementTokens?: string[];
332
+ exceptionOnly: boolean;
333
+ };
334
+ type PayclaveReconciliationFile = {
335
+ name: string;
336
+ mediaType: string;
337
+ rows: number;
338
+ bytes: number;
339
+ sha256: string;
340
+ };
341
+ type PayclaveReconciliationExport = {
342
+ id: string;
343
+ merchantId: string;
344
+ mode: PayclaveMode;
345
+ status: PayclaveReconciliationExportStatus;
346
+ format: "csv" | "json" | (string & {});
347
+ schemaVersion: string;
348
+ filters: PayclaveReconciliationFilters;
349
+ dateBasis: PayclaveReconciliationDateBasis;
350
+ cutoffAt?: string | null;
351
+ timezone: string;
352
+ requestedBy: string;
353
+ requestedAt: string;
354
+ startedAt?: string | null;
355
+ completedAt?: string | null;
356
+ cancelledAt?: string | null;
357
+ expiresAt?: string | null;
358
+ rowCounts?: Record<string, number>;
359
+ byteSize?: number;
360
+ fileManifest?: PayclaveReconciliationFile[];
361
+ sha256?: string;
362
+ summaryByToken?: PayclaveReconciliationTokenSummary[];
363
+ warnings?: string[];
364
+ errorCategory?: string;
365
+ attempts: number;
366
+ includePII: boolean;
367
+ piiFields?: string[];
368
+ createdAt: string;
369
+ updatedAt: string;
370
+ statusUrl?: string;
371
+ };
372
+ type CreateReconciliationExportInput = GetReconciliationSummaryInput & {
373
+ mode?: "test" | "live";
374
+ format: "csv" | "json";
375
+ includePII?: boolean;
376
+ idempotencyKey?: string;
377
+ schemaVersion?: string;
378
+ };
379
+ type ListReconciliationExportsInput = PayclaveRequestOptions & {
380
+ limit?: number;
381
+ startingAfter?: string;
382
+ };
383
+ type PayclaveReconciliationExportList = {
384
+ items: PayclaveReconciliationExport[];
385
+ hasMore: boolean;
386
+ nextCursor?: string;
387
+ };
388
+ type ReconciliationExportActionInput = PayclaveRequestOptions & {
389
+ idempotencyKey?: string;
47
390
  };
48
391
  type PayclaveCreatedCheckoutSession = {
49
392
  id: string;
50
393
  checkoutId: string;
51
394
  object: "checkout_session";
52
395
  mode: PayclaveMode;
396
+ sourceType?: PayclaveSourceType;
53
397
  status: "pending";
398
+ collectionState: PayclaveInvoiceCollectionState;
54
399
  invoiceId: string;
55
400
  invoiceNumber: string;
56
401
  amountDue: string;
57
402
  amountReceived: string;
403
+ total: string;
404
+ customerAmountPaid: string;
405
+ customerAmountRemaining: string;
58
406
  currencyCode: string;
59
407
  chainId: number;
60
408
  tokenSymbol: string;
@@ -72,11 +420,16 @@ type PayclaveCheckoutSession = {
72
420
  checkoutId: string;
73
421
  object: "checkout_session";
74
422
  mode: PayclaveMode;
423
+ sourceType?: PayclaveSourceType;
75
424
  status: PayclaveInvoiceStatus;
425
+ collectionState: PayclaveInvoiceCollectionState;
76
426
  invoiceId: string | null;
77
427
  invoiceNumber: string | null;
78
428
  amountDue: string;
79
429
  amountReceived: string;
430
+ total: string;
431
+ customerAmountPaid: string;
432
+ customerAmountRemaining: string;
80
433
  currencyCode: string;
81
434
  chainId: number;
82
435
  tokenSymbol: string;
@@ -95,19 +448,48 @@ type PayclaveCheckoutSession = {
95
448
  */
96
449
  platformFee?: string;
97
450
  netAmount?: string;
451
+ expectedMerchantSettlement?: string;
452
+ merchantAmountSettled?: string;
453
+ overpaymentAmount?: string;
98
454
  /** Present once a payment has been detected for the session. */
99
455
  paymentId?: string;
100
456
  paymentStatus?: PayclavePaymentStatus;
101
457
  txHash?: string;
102
458
  sourceTxHash?: string;
103
459
  settlementTxHash?: string;
460
+ } & PayclavePaymentSource;
461
+ /**
462
+ * The network and token the customer paid with, which can differ from the
463
+ * settlement token (`currencyCode`/`chainId`) when the payment was routed
464
+ * across chains. Each field is present only when the provider reported it.
465
+ */
466
+ type PayclavePaymentSource = {
467
+ /** Lowercase network slug, e.g. "base", "polygon", "tron", "solana". */
468
+ sourceNetwork?: string;
469
+ /** EVM chain id of the source network; absent for non-EVM networks. */
470
+ sourceChainId?: number;
471
+ /** Symbol of the token the customer paid with, e.g. "USDC". */
472
+ sourceTokenSymbol?: string;
473
+ sourceTokenAddress?: string;
474
+ sourceTokenLogoUrl?: string;
104
475
  };
105
476
  type PayclaveInvoice = {
106
477
  id: string;
107
- invoiceNumber: string;
478
+ invoiceNumber: string | null;
108
479
  object: "invoice";
109
480
  mode: PayclaveMode;
110
481
  status: PayclaveInvoiceStatus;
482
+ collectionState: PayclaveInvoiceCollectionState;
483
+ subtotal: string;
484
+ discountTotal: string;
485
+ taxTotal: string;
486
+ total: string;
487
+ customerAmountPaid: string;
488
+ customerAmountRemaining: string;
489
+ expectedMerchantSettlement: string;
490
+ merchantAmountSettled: string;
491
+ overpaymentAmount: string;
492
+ migrationState: PayclaveMigrationState;
111
493
  amountDue: string;
112
494
  amountReceived: string;
113
495
  platformFee: string;
@@ -118,11 +500,165 @@ type PayclaveInvoice = {
118
500
  settlementWalletAddress: string;
119
501
  externalReference: string | null;
120
502
  metadata: PayclaveMetadata;
121
- expiresAt: string;
503
+ expiresAt: string | null;
122
504
  paidAt: string | null;
123
505
  cancelledAt: string | null;
506
+ voidedAt?: string | null;
507
+ uncollectibleAt?: string | null;
508
+ createdAt: string;
509
+ internalId?: string;
510
+ sourceType?: PayclaveSourceType;
511
+ version?: number;
512
+ calculationVersion?: string;
513
+ sellerSnapshot?: {
514
+ displayName: string;
515
+ businessEmail?: string | null;
516
+ address?: string | null;
517
+ taxIdentifier?: string | null;
518
+ } | null;
519
+ customer?: PayclaveInvoiceCustomer;
520
+ lines?: Array<PayclaveInvoiceLineInput & {
521
+ lineTotal: string;
522
+ }>;
523
+ discount?: PayclaveInvoiceDiscountInput | null;
524
+ taxes?: PayclaveInvoiceTaxInput[];
525
+ paymentTerms?: string;
526
+ memo?: string;
527
+ footer?: string;
528
+ purchaseOrderNumber?: string;
529
+ dueAt?: string | null;
530
+ issuedAt?: string | null;
531
+ publicToken?: string | null;
532
+ hostedInvoiceEnabled?: boolean;
533
+ hostedInvoiceUrl?: string | null;
534
+ checkoutSessions?: PayclaveInvoiceCheckoutSession[];
535
+ payments?: PayclaveInvoicePayment[];
536
+ adjustments?: PayclavePaymentAdjustment[];
537
+ deliveries?: PayclaveInvoiceDelivery[];
538
+ activity?: PayclaveInvoiceActivityEvent[];
539
+ reminderSchedule?: PayclaveInvoiceReminderSchedule;
540
+ remindersPausedAt?: string | null;
541
+ lastReminderAt?: string | null;
542
+ nextReminderAt?: string | null;
543
+ lastSentAt?: string | null;
544
+ updatedAt?: string;
545
+ lastActivityAt?: string | null;
546
+ };
547
+ type PayclaveInvoiceCheckoutSession = {
548
+ id: string;
549
+ checkoutId: string;
550
+ status: string;
551
+ sourceType?: PayclaveSourceType;
552
+ amountDue: string;
553
+ checkoutUrl: string;
554
+ expiresAt: string;
555
+ completedAt: string | null;
556
+ createdAt: string;
557
+ };
558
+ type PayclaveInvoicePayment = {
559
+ id: string;
560
+ invoiceId: string;
561
+ checkoutSessionId?: string;
562
+ transactionId: string | null;
563
+ sourceTransactionId: string | null;
564
+ settlementTransactionId: string | null;
565
+ mode: PayclaveMode;
566
+ status: PayclavePaymentStatus;
567
+ amountExpected: string;
568
+ amountReceived: string;
569
+ customerAmountTendered?: string;
570
+ customerAmountCredited?: string;
571
+ expectedMerchantSettlement?: string;
572
+ merchantAmountSettled?: string;
573
+ platformFeeExpected?: string;
574
+ platformFeeCollected?: string;
575
+ platformFee: string;
576
+ netAmount: string;
577
+ chainId: number;
578
+ settlementWalletAddress: string;
579
+ failureReason: string | null;
580
+ confirmedAt: string | null;
581
+ createdAt: string;
582
+ };
583
+ type PayclavePaymentAdjustment = {
584
+ id: string;
585
+ merchantId: string;
586
+ mode: PayclaveMode;
587
+ invoiceId: string;
588
+ paymentId?: string;
589
+ type: "refund_reference" | "write_off" | "correction" | (string & {});
590
+ amount: string;
591
+ reason: string;
592
+ externalTransactionHash?: string;
593
+ chainId?: number;
594
+ tokenContract?: string;
595
+ createdByType: string;
596
+ createdById: string;
124
597
  createdAt: string;
125
598
  };
599
+ type PayclaveInvoiceCheckoutSessionCreated = {
600
+ invoiceId: string;
601
+ invoiceNumber: string;
602
+ checkoutSessionId: string;
603
+ checkoutUrl: string;
604
+ amountDue: string;
605
+ currencyCode: string;
606
+ expiresAt: string;
607
+ };
608
+ type PayclaveRefundReferenceResult = {
609
+ adjustment: PayclavePaymentAdjustment;
610
+ invoice: PayclaveInvoice;
611
+ };
612
+ type PayclaveInvoiceList = {
613
+ items: PayclaveInvoice[];
614
+ hasMore: boolean;
615
+ nextCursor: string | null;
616
+ };
617
+ type PayclavePaymentLink = {
618
+ id: string;
619
+ object: "payment_link";
620
+ publicId: string;
621
+ url: string;
622
+ merchantId: string;
623
+ mode: PayclaveMode;
624
+ status: PayclavePaymentLinkStatus;
625
+ version: number;
626
+ title: string;
627
+ description: string;
628
+ amountType: PayclavePaymentLinkAmountType;
629
+ amount: string | null;
630
+ minimumAmount: string | null;
631
+ maximumAmount: string | null;
632
+ currencyCode: string;
633
+ chainId: number;
634
+ tokenContract: string;
635
+ usageType: PayclavePaymentLinkUsageType;
636
+ completedPayments: number;
637
+ startedCheckouts: number;
638
+ activeAt: string | null;
639
+ expiresAt: string | null;
640
+ pausedAt: string | null;
641
+ archivedAt: string | null;
642
+ collect: PayclavePaymentLinkCollect;
643
+ referencePrefix: string;
644
+ successUrl: string | null;
645
+ cancelUrl: string | null;
646
+ successMessage: string;
647
+ metadata: PayclaveMetadata;
648
+ reservationInvoiceId: string | null;
649
+ reservedAt: string | null;
650
+ createdAt: string;
651
+ updatedAt: string;
652
+ lastCheckoutCreatedAt: string | null;
653
+ };
654
+ type PayclavePaymentLinkList = {
655
+ items: PayclavePaymentLink[];
656
+ hasMore: boolean;
657
+ nextCursor: string | null;
658
+ };
659
+ type PayclavePaymentLinkPayments = {
660
+ items: PayclaveInvoice[];
661
+ };
126
662
  type PayclavePayment = {
127
663
  id: string;
128
664
  object: "payment";
@@ -133,6 +669,16 @@ type PayclavePayment = {
133
669
  status: PayclavePaymentStatus;
134
670
  amountExpected: string;
135
671
  amountReceived: string;
672
+ customerAmountTendered: string;
673
+ customerAmountCredited: string;
674
+ expectedMerchantSettlement: string;
675
+ merchantAmountSettled: string;
676
+ platformFeeExpected: string;
677
+ platformFeeCollected: string;
678
+ payerWalletAddress: string;
679
+ payerWalletEvidence: string;
680
+ creditEvidenceType: string;
681
+ migrationState: PayclaveMigrationState;
136
682
  platformFee: string;
137
683
  netAmount: string;
138
684
  chainId: number;
@@ -140,7 +686,7 @@ type PayclavePayment = {
140
686
  failureReason: string | null;
141
687
  confirmedAt: string | null;
142
688
  createdAt: string;
143
- };
689
+ } & PayclavePaymentSource;
144
690
  type PayclaveWebhookEndpoint = {
145
691
  id: string;
146
692
  object: "webhook_endpoint";
@@ -148,19 +694,74 @@ type PayclaveWebhookEndpoint = {
148
694
  url: string;
149
695
  enabled: boolean;
150
696
  eventTypes: PayclaveWebhookEventType[];
151
- signingSecret: string;
697
+ signingSecret?: string;
698
+ copyRequired?: boolean;
699
+ currentSecretVersion: number;
700
+ secretVersions: PayclaveWebhookSecretVersion[];
701
+ secretOverlap: {
702
+ status: "none" | "active" | (string & {});
703
+ expiresAt: string | null;
704
+ previousVersion: number | null;
705
+ };
706
+ createdAt: string;
707
+ updatedAt: string;
708
+ };
709
+ type PayclaveWebhookSecretVersion = {
710
+ version: number;
711
+ createdAt: string;
712
+ activatesAt: string;
713
+ expiresAt: string | null;
714
+ revokedAt: string | null;
715
+ testedAt: string | null;
716
+ };
717
+ type PayclaveWebhookIncident = {
718
+ id: string;
719
+ object: "webhook_incident";
720
+ endpointId: string;
721
+ mode: PayclaveMode;
722
+ status: "open" | "resolved" | (string & {});
723
+ reasonFamily: string;
724
+ failureCount: number;
725
+ affectedDeliveryCount: number;
726
+ affectedDeliveryIds: string[];
727
+ firstFailedAt: string;
728
+ lastFailedAt: string;
729
+ openedAt: string;
730
+ resolvedAt: string | null;
731
+ lastDeliveryId: string;
732
+ lastAttemptId: string;
152
733
  createdAt: string;
734
+ updatedAt: string;
153
735
  };
154
736
  type PayclaveWebhookDeliveryAttemptSummary = {
155
737
  responseStatusCode: number | null;
156
738
  errorMessage: string | null;
739
+ errorCategory?: string | null;
740
+ attemptedAt: string;
741
+ };
742
+ type PayclaveWebhookDeliveryAttempt = {
743
+ id: string;
744
+ attemptNumber: number;
745
+ responseStatusCode: number | null;
746
+ responseBody: string | null;
747
+ responseBodyTruncated: boolean;
748
+ errorMessage: string | null;
749
+ errorCategory?: string | null;
750
+ responseHeaders?: Record<string, string> | null;
751
+ requestHeaders?: Record<string, string> | null;
752
+ destinationHost?: string;
753
+ sanitizedAt?: string;
157
754
  attemptedAt: string;
755
+ startedAt: string;
756
+ completedAt: string;
757
+ durationMs: number;
158
758
  };
159
759
  type PayclaveWebhookDelivery = {
160
760
  id: string;
161
761
  object: "webhook_delivery";
162
762
  endpointId: string;
163
763
  invoiceId: string | null;
764
+ eventId: string;
164
765
  eventType: PayclaveWebhookEventType | (string & {});
165
766
  status: PayclaveWebhookDeliveryStatus;
166
767
  idempotencyKey: string;
@@ -169,6 +770,12 @@ type PayclaveWebhookDelivery = {
169
770
  deliveredAt: string | null;
170
771
  attemptCount: number;
171
772
  latestAttempt: PayclaveWebhookDeliveryAttemptSummary | null;
773
+ latestErrorCategory?: string | null;
774
+ replayOfDeliveryId: string | null;
775
+ replayRootDeliveryId: string | null;
776
+ replayedBy: string | null;
777
+ replayedAt: string | null;
778
+ attempts?: PayclaveWebhookDeliveryAttempt[];
172
779
  createdAt: string;
173
780
  };
174
781
  type PayclaveWebhookData = Record<string, unknown>;
@@ -180,7 +787,7 @@ type PayclaveWebhookEvent<TData = PayclaveWebhookData> = {
180
787
  createdAt: string;
181
788
  data: TData;
182
789
  };
183
- declare const PAYCLAVE_API_ERROR_CODES: readonly ["ACCOUNT_SUSPENDED", "API_KEY_FORBIDDEN", "API_KEY_REQUIRED", "AUTH_FORBIDDEN", "GOOGLE_ACCOUNT_CONFLICT", "GOOGLE_AUTH_CANCELLED", "GOOGLE_AUTH_CODE_MISSING", "GOOGLE_EMAIL_UNVERIFIED", "GOOGLE_AUTH_EXCHANGE_FAILED", "GOOGLE_AUTH_FAILED", "GOOGLE_PROFILE_UNAVAILABLE", "GOOGLE_AUTH_STATE_INVALID", "AUTH_PASSWORD_ALREADY_SET", "AUTH_PROVIDER_UNAVAILABLE", "AUTH_REQUIRED", "USE_SOCIAL_LOGIN", "AUTH_VERIFIED_EMAIL_REQUIRED", "DEFAULT_WALLET_REQUIRED", "INTERNAL_JOB_UNAUTHORIZED", "INTERNAL_SERVER_ERROR", "INVALID_AMOUNT", "INVALID_API_KEY", "INVALID_CREDENTIALS", "INVALID_EXPIRY", "INVALID_IDEMPOTENCY_KEY", "INVALID_DEPOSIT_NETWORK", "INVALID_WALLET_PAYMENT_ATTEMPT", "INVALID_TX_HASH", "INVALID_WALLET_ADDRESS", "NOT_FOUND", "RATE_LIMIT_EXCEEDED", "REQUEST_ERROR", "SCAN_OR_COPY_UNAVAILABLE", "WALLET_PAYMENTS_UNAVAILABLE", "UNSUPPORTED_DEFAULT_WALLET", "VALIDATION_ERROR", "WEBHOOK_DELIVERY_NOT_FOUND", "WEBHOOK_ENDPOINT_NOT_FOUND", "WEBHOOK_EVENT_UNSUPPORTED", "WEBHOOK_SIGNATURE_INVALID", "CHECKOUT_SESSION_NOT_PAYABLE", "INVOICE_NOT_FOUND", "INVOICE_STATE_MISMATCH", "INVOICE_TRANSITION_GUARD_FAILED", "IDEMPOTENCY_KEY_CONFLICT"];
790
+ declare const PAYCLAVE_API_ERROR_CODES: readonly ["ACCOUNT_SUSPENDED", "ACTIVE_MERCHANT_REQUIRED", "API_KEY_FORBIDDEN", "API_KEY_REQUIRED", "AUTH_FORBIDDEN", "GOOGLE_ACCOUNT_CONFLICT", "GOOGLE_AUTH_CANCELLED", "GOOGLE_AUTH_CODE_MISSING", "GOOGLE_EMAIL_UNVERIFIED", "GOOGLE_AUTH_EXCHANGE_FAILED", "GOOGLE_AUTH_FAILED", "GOOGLE_PROFILE_UNAVAILABLE", "GOOGLE_AUTH_STATE_INVALID", "AUTH_PASSWORD_ALREADY_SET", "AUTH_PROXY_UNAUTHORIZED", "AUTH_PROVIDER_UNAVAILABLE", "AUTH_REQUIRED", "USE_SOCIAL_LOGIN", "AUTH_VERIFIED_EMAIL_REQUIRED", "DEFAULT_WALLET_REQUIRED", "INTERNAL_JOB_UNAUTHORIZED", "INTERNAL_SERVER_ERROR", "INVALID_AMOUNT", "INVALID_API_KEY", "INVALID_CREDENTIALS", "INVALID_EXPIRY", "INVALID_IDEMPOTENCY_KEY", "INVALID_DEPOSIT_NETWORK", "INVALID_WALLET_PAYMENT_ATTEMPT", "INVALID_TX_HASH", "INVALID_WALLET_ADDRESS", "MODE_MISMATCH", "MEMBERSHIP_REVOKED", "MEMBER_ALREADY_EXISTS", "MEMBER_LIMIT_REACHED", "LAST_OWNER_REQUIRED", "INVITATION_ALREADY_PENDING", "INVITATION_ALREADY_USED", "INVITATION_EMAIL_MISMATCH", "INVITATION_EXPIRED", "INVITATION_NOT_FOUND", "OWNERSHIP_TRANSFER_REQUIRED", "NOT_FOUND", "PUBLIC_KEY_FIELD_NOT_ALLOWED", "PERMISSION_DENIED", "RATE_LIMIT_EXCEEDED", "REAUTH_REQUIRED", "STEP_UP_REQUIRED", "REQUEST_ERROR", "REQUEST_TOO_LARGE", "SCAN_OR_COPY_UNAVAILABLE", "WALLET_PAYMENTS_UNAVAILABLE", "UNSUPPORTED_DEFAULT_WALLET", "VALIDATION_ERROR", "WEBHOOK_DELIVERY_NOT_FOUND", "WEBHOOK_ENDPOINT_DISABLED", "WEBHOOK_ENDPOINT_NOT_FOUND", "WEBHOOK_EVENT_UNSUPPORTED", "WEBHOOK_INCIDENT_NOT_FOUND", "WEBHOOK_SIGNATURE_INVALID", "SECRET_OVERLAP_ACTIVE", "SECRET_OVERLAP_EXPIRED", "CHECKOUT_SESSION_NOT_PAYABLE", "EVENT_TYPE_UNSUPPORTED", "EVENT_PAYLOAD_TOO_LARGE", "JOURNEY_TOKEN_INVALID", "EVENT_DUPLICATE", "TIMESTAMP_OUT_OF_RANGE", "INVOICE_NOT_FOUND", "INVOICE_STATE_MISMATCH", "INVOICE_TRANSITION_GUARD_FAILED", "INVOICE_NOT_EDITABLE", "INVOICE_ALREADY_ISSUED", "INVOICE_NOT_PAYABLE", "INVOICE_PDF_UNAVAILABLE", "INVOICE_VERSION_CONFLICT", "CURRENCY_MISMATCH", "INVALID_TOTAL", "CUSTOMER_EMAIL_REQUIRED", "IDEMPOTENCY_KEY_CONFLICT", "PAYMENT_LINK_NOT_FOUND", "PAYMENT_LINK_VERSION_CONFLICT", "LINK_INACTIVE", "LINK_EXPIRED", "LINK_ALREADY_USED", "LINK_RESERVED", "AMOUNT_OUT_OF_RANGE", "FIELD_REQUIRED", "FEATURE_UNAVAILABLE", "MODE_UNAVAILABLE", "CONFIG_CHANGED", "RATE_LIMITED", "EXPORT_RANGE_TOO_LARGE", "EXPORT_NOT_READY", "EXPORT_EXPIRED", "EXPORT_CANCELLED", "EXPORT_SCHEMA_UNSUPPORTED", "EXPORT_TOO_LARGE_FOR_SYNC"];
184
791
  type PayclaveApiErrorCode = (typeof PAYCLAVE_API_ERROR_CODES)[number];
185
792
  declare const PAYCLAVE_SERVER_SDK_ERROR_CODES: readonly ["INVALID_SECRET_KEY", "INVALID_API_BASE_URL", "INVALID_TIMEOUT", "INVALID_ID", "INVALID_AMOUNT", "INVALID_EXPIRY", "INVALID_METADATA", "INVALID_IDEMPOTENCY_KEY", "INVALID_LIMIT", "INVALID_WEBHOOK_URL", "INVALID_REQUEST_BODY", "INVALID_RESPONSE", "NETWORK_ERROR", "TIMEOUT", "ABORTED"];
186
793
  type PayclaveServerSdkErrorCode = (typeof PAYCLAVE_SERVER_SDK_ERROR_CODES)[number];
@@ -217,7 +824,7 @@ declare class PayclaveError extends Error {
217
824
  };
218
825
  }
219
826
  declare const PAYCLAVE_SERVER_SDK_NAME = "payclave-sdk-server";
220
- declare const PAYCLAVE_SERVER_SDK_VERSION = "0.1.0";
827
+ declare const PAYCLAVE_SERVER_SDK_VERSION = "0.2.0";
221
828
  declare function assertPayclaveWebhookSignature({ payload, signature, secret, toleranceSeconds, now, }: VerifyWebhookSignatureInput): void;
222
829
  declare function verifyPayclaveWebhookSignature(input: VerifyWebhookSignatureInput): boolean;
223
830
  declare function constructPayclaveWebhookEvent<TData extends PayclaveWebhookData = PayclaveWebhookData>(input: VerifyWebhookSignatureInput): PayclaveWebhookEvent<TData>;
@@ -225,12 +832,57 @@ declare function createPayclaveServerClient({ secretKey, apiBaseUrl, fetcher, ti
225
832
  createCheckoutSession: (input: CreateCheckoutSessionInput) => Promise<PayclaveCreatedCheckoutSession>;
226
833
  getCheckoutSession: (id: string, options?: PayclaveRequestOptions) => Promise<PayclaveCheckoutSession>;
227
834
  createInvoice: (input: CreateInvoiceInput) => Promise<PayclaveInvoice>;
835
+ createInvoiceDraft: (input: CreateInvoiceDraftInput) => Promise<PayclaveInvoice>;
836
+ listInvoices: (input?: ListInvoicesInput) => Promise<PayclaveInvoiceList>;
228
837
  getInvoice: (id: string, options?: PayclaveRequestOptions) => Promise<PayclaveInvoice>;
838
+ downloadInvoicePDF: (id: string, options?: PayclaveRequestOptions) => Promise<PayclaveInvoicePDF>;
839
+ updateInvoiceDraft: (id: string, input: UpdateInvoiceDraftInput) => Promise<PayclaveInvoice>;
840
+ issueInvoice: (id: string, input: IssueInvoiceInput) => Promise<PayclaveInvoice>;
841
+ sendInvoice: (id: string, input?: CreateInvoiceCheckoutSessionInput) => Promise<PayclaveInvoice>;
842
+ remindInvoice: (id: string, input?: CreateInvoiceCheckoutSessionInput) => Promise<PayclaveInvoice>;
843
+ createInvoiceCheckoutSession: (id: string, input?: CreateInvoiceCheckoutSessionInput) => Promise<PayclaveInvoiceCheckoutSessionCreated>;
844
+ voidInvoice: (id: string, input?: InvoiceActionInput) => Promise<PayclaveInvoice>;
845
+ voidInvoiceRemaining: (id: string, input?: InvoiceActionInput) => Promise<PayclaveInvoice>;
846
+ markInvoiceUncollectible: (id: string, input?: InvoiceActionInput) => Promise<PayclaveInvoice>;
847
+ duplicateInvoice: (id: string, input?: CreateInvoiceCheckoutSessionInput) => Promise<PayclaveInvoice>;
848
+ recordInvoiceRefundReference: (id: string, input: RecordInvoiceRefundReferenceInput) => Promise<PayclaveRefundReferenceResult>;
849
+ createPaymentLink: (input: CreatePaymentLinkInput) => Promise<PayclavePaymentLink>;
850
+ listPaymentLinks: (input?: ListPaymentLinksInput) => Promise<PayclavePaymentLinkList>;
851
+ getPaymentLink: (id: string, options?: PayclaveRequestOptions) => Promise<PayclavePaymentLink>;
852
+ updatePaymentLink: (id: string, input: UpdatePaymentLinkInput) => Promise<PayclavePaymentLink>;
853
+ pausePaymentLink: (id: string, input?: PaymentLinkActionInput) => Promise<PayclavePaymentLink>;
854
+ resumePaymentLink: (id: string, input?: PaymentLinkActionInput) => Promise<PayclavePaymentLink>;
855
+ archivePaymentLink: (id: string, input?: PaymentLinkActionInput) => Promise<PayclavePaymentLink>;
856
+ duplicatePaymentLink: (id: string, input?: PaymentLinkActionInput) => Promise<PayclavePaymentLink>;
857
+ releasePaymentLinkReservation: (id: string, input: ReleasePaymentLinkReservationInput) => Promise<PayclavePaymentLink>;
858
+ listPaymentLinkPayments: (id: string, input?: ListPaymentLinkPaymentsInput) => Promise<PayclavePaymentLinkPayments>;
229
859
  getPayment: (id: string, options?: PayclaveRequestOptions) => Promise<PayclavePayment>;
230
860
  createWebhookEndpoint: (input: CreateWebhookEndpointInput) => Promise<PayclaveWebhookEndpoint>;
861
+ listWebhookEndpoints: (options?: PayclaveRequestOptions) => Promise<PayclaveWebhookEndpoint[]>;
862
+ getWebhookEndpoint: (id: string, options?: PayclaveRequestOptions) => Promise<PayclaveWebhookEndpoint>;
863
+ updateWebhookEndpoint: (id: string, input: UpdateWebhookEndpointInput) => Promise<PayclaveWebhookEndpoint>;
864
+ archiveWebhookEndpoint: (id: string, input: WebhookEndpointActionInput) => Promise<{
865
+ id: string;
866
+ object: "webhook_endpoint";
867
+ archived: true;
868
+ }>;
869
+ rotateWebhookSecret: (id: string, input: WebhookEndpointActionInput) => Promise<PayclaveWebhookEndpoint>;
870
+ endWebhookSecretOverlap: (id: string, input: WebhookEndpointActionInput) => Promise<PayclaveWebhookEndpoint>;
231
871
  createTestWebhook: (input: CreateTestWebhookInput) => Promise<PayclaveWebhookDelivery>;
232
872
  listWebhookDeliveries: (input?: ListWebhookDeliveriesInput) => Promise<PayclaveWebhookDelivery[]>;
873
+ getWebhookDelivery: (id: string, options?: PayclaveRequestOptions) => Promise<PayclaveWebhookDelivery>;
874
+ listWebhookDeliveryAttempts: (id: string, options?: PayclaveRequestOptions) => Promise<PayclaveWebhookDeliveryAttempt[]>;
875
+ replayWebhookDelivery: (id: string, input: ReplayWebhookDeliveryInput) => Promise<PayclaveWebhookDelivery>;
876
+ listWebhookIncidents: (input?: ListWebhookIncidentsInput) => Promise<PayclaveWebhookIncident[]>;
877
+ getWebhookIncident: (id: string, options?: PayclaveRequestOptions) => Promise<PayclaveWebhookIncident>;
878
+ getReconciliationSchema: (version?: string, options?: PayclaveRequestOptions) => Promise<PayclaveReconciliationSchema>;
879
+ getReconciliationSummary: (input: GetReconciliationSummaryInput) => Promise<PayclaveReconciliationSummary>;
880
+ createReconciliationExport: (input: CreateReconciliationExportInput) => Promise<PayclaveReconciliationExport>;
881
+ listReconciliationExports: (input?: ListReconciliationExportsInput) => Promise<PayclaveReconciliationExportList>;
882
+ getReconciliationExport: (id: string, options?: PayclaveRequestOptions) => Promise<PayclaveReconciliationExport>;
883
+ cancelReconciliationExport: (id: string, input?: ReconciliationExportActionInput) => Promise<PayclaveReconciliationExport>;
884
+ downloadReconciliationExport: (id: string, options?: PayclaveRequestOptions) => Promise<PayclaveReconciliationDownload>;
233
885
  };
234
886
  type PayclaveServerClient = ReturnType<typeof createPayclaveServerClient>;
235
887
 
236
- export { type CreateCheckoutSessionInput, type CreateInvoiceInput, type CreateTestWebhookInput, type CreateWebhookEndpointInput, type ListWebhookDeliveriesInput, PAYCLAVE_API_ERROR_CODES, PAYCLAVE_SERVER_SDK_ERROR_CODES, PAYCLAVE_SERVER_SDK_NAME, PAYCLAVE_SERVER_SDK_VERSION, PAYCLAVE_WEBHOOK_EVENT_TYPES, PAYCLAVE_WEBHOOK_VERIFICATION_ERROR_CODES, type PayclaveApiErrorCode, type PayclaveCheckoutSession, type PayclaveCreatedCheckoutSession, PayclaveError, type PayclaveErrorCode, type PayclaveFetcher, type PayclaveInvoice, type PayclaveInvoiceStatus, type PayclaveMetadata, type PayclaveMode, type PayclavePayment, type PayclavePaymentStatus, type PayclaveRequestOptions, type PayclaveServerClient, type PayclaveServerClientOptions, type PayclaveServerSdkErrorCode, type PayclaveWebhookData, type PayclaveWebhookDelivery, type PayclaveWebhookDeliveryAttemptSummary, type PayclaveWebhookDeliveryStatus, type PayclaveWebhookEndpoint, type PayclaveWebhookEvent, type PayclaveWebhookEventType, type PayclaveWebhookVerificationErrorCode, type VerifyWebhookSignatureInput, assertPayclaveWebhookSignature, constructPayclaveWebhookEvent, createPayclaveServerClient, verifyPayclaveWebhookSignature };
888
+ export { type CreateCheckoutSessionInput, type CreateInvoiceCheckoutSessionInput, type CreateInvoiceDraftInput, type CreateInvoiceInput, type CreatePaymentLinkInput, type CreateReconciliationExportInput, type CreateTestWebhookInput, type CreateWebhookEndpointInput, type GetReconciliationSummaryInput, type InvoiceActionInput, type IssueInvoiceInput, type ListInvoicesInput, type ListPaymentLinkPaymentsInput, type ListPaymentLinksInput, type ListReconciliationExportsInput, type ListWebhookDeliveriesInput, type ListWebhookIncidentsInput, PAYCLAVE_API_ERROR_CODES, PAYCLAVE_RECONCILIATION_SCHEMA_VERSION, PAYCLAVE_SERVER_SDK_ERROR_CODES, PAYCLAVE_SERVER_SDK_NAME, PAYCLAVE_SERVER_SDK_VERSION, PAYCLAVE_WEBHOOK_EVENT_TYPES, PAYCLAVE_WEBHOOK_VERIFICATION_ERROR_CODES, type PayclaveApiErrorCode, type PayclaveCheckoutSession, type PayclaveCreatedCheckoutSession, PayclaveError, type PayclaveErrorCode, type PayclaveFetcher, type PayclaveInvoice, type PayclaveInvoiceActivityEvent, type PayclaveInvoiceCheckoutSession, type PayclaveInvoiceCheckoutSessionCreated, type PayclaveInvoiceCollectionState, type PayclaveInvoiceCustomer, type PayclaveInvoiceDelivery, type PayclaveInvoiceDiscountInput, type PayclaveInvoiceDraftFields, type PayclaveInvoiceLineInput, type PayclaveInvoiceList, type PayclaveInvoicePDF, type PayclaveInvoicePayment, type PayclaveInvoiceReminderSchedule, type PayclaveInvoiceStatus, type PayclaveInvoiceTaxInput, type PayclaveMetadata, type PayclaveMigrationState, type PayclaveMode, type PayclavePayment, type PayclavePaymentAdjustment, type PayclavePaymentLink, type PayclavePaymentLinkAmountType, type PayclavePaymentLinkCollect, type PayclavePaymentLinkFields, type PayclavePaymentLinkList, type PayclavePaymentLinkPayments, type PayclavePaymentLinkStatus, type PayclavePaymentLinkUsageType, type PayclavePaymentSource, type PayclavePaymentStatus, type PayclaveReconciliationDateBasis, type PayclaveReconciliationDownload, type PayclaveReconciliationExport, type PayclaveReconciliationExportList, type PayclaveReconciliationExportStatus, type PayclaveReconciliationFile, type PayclaveReconciliationFilters, type PayclaveReconciliationSchema, type PayclaveReconciliationSummary, type PayclaveReconciliationTokenSummary, type PayclaveRefundReferenceResult, type PayclaveRequestOptions, type PayclaveServerClient, type PayclaveServerClientOptions, type PayclaveServerSdkErrorCode, type PayclaveSourceType, type PayclaveWebhookData, type PayclaveWebhookDelivery, type PayclaveWebhookDeliveryAttempt, type PayclaveWebhookDeliveryAttemptSummary, type PayclaveWebhookDeliveryStatus, type PayclaveWebhookEndpoint, type PayclaveWebhookEvent, type PayclaveWebhookEventType, type PayclaveWebhookIncident, type PayclaveWebhookSecretVersion, type PayclaveWebhookVerificationErrorCode, type PaymentLinkActionInput, type ReconciliationExportActionInput, type RecordInvoiceRefundReferenceInput, type ReleasePaymentLinkReservationInput, type ReplayWebhookDeliveryInput, type UpdateInvoiceDraftInput, type UpdatePaymentLinkInput, type UpdateWebhookEndpointInput, type VerifyWebhookSignatureInput, type WebhookEndpointActionInput, assertPayclaveWebhookSignature, constructPayclaveWebhookEvent, createPayclaveServerClient, verifyPayclaveWebhookSignature };